FaqCplusPlusCharacterEncodingJa

(Difference between revisions)
 
Line 1: Line 1:
-
__NOTOC__
 
__NOTOC__
__NOTOC__
==C/C++ アプリケーションの出力内容が文字化けしてしまいます。どうすればよいですか?==
==C/C++ アプリケーションの出力内容が文字化けしてしまいます。どうすればよいですか?==

Current revision as of 16:32, 6 November 2009

C/C++ アプリケーションの出力内容が文字化けしてしまいます。どうすればよいですか?

オペレーティングシステムにより原因が異なる場合があります。

全オペレーティングシステム共通

C/C++ アプリケーション、およびライブラリのプロジェクトのデフォルトエンコーディングは UTF-8 です。例えばソースコードの中に文字列リテラルとして日本語を直接書き込んだ場合、文字は UTF-8 として保存されます。エンコーディングを変更するには以下の手順を実施してください:

  1. プロジェクトウィンドウでプロジェクトを右クリックして「プロパティー」を選択します
  2. 右側のツリーで「一般」が選択されている状態で、左側の区画の一番下にある「エンコーディング」を設定します

例えば Windows XP の場合、エンコーディングを「Shift_JIS」にすることで、文字列はコマンドプロンプト上に正しく表示されるようになります。

Mac OS X 固有

Mac OS X の場合には、OS のエンコーディングは UTF-8 ですので、上記の「エンコーディング」を変更する必要はありませんが、xterm で日本語を表示させることができないため日本語は正しく表示されません。IDE 上では使用する端末エミュレーターの指定ができないので、この問題を解決することはできません。また指定するように変更することも現状では予定されていません。それについての改善提案は「対応しない」というステータスになっています:

Issue 151666: Request to have an option to specify terminal software

/usr/X11R6/bin/xterm の代わりに /usr/X11R6/bin/uxterm が呼ばれるようにすれば、アプリケーションの出力は正しく表示されるようになりますが、以下の方法はシステムの他のアプリケーションにも影響が及ぶため推奨されません。一応以下のようにすれば表示させることができた。という参考程度に捉えてください。

  1. /usr/X11R6/bin/xterm を /usr/X11/bin/xterm.original に名前変更
    # mv /usr/X11R6/bin/xterm /usr/X11R6/bin/xterm.orignail
  2. /usr/X11R6/bin/uxterm を /usr/X11/bin/uxterm.original にしてコピー
    # cp /usr/X11R6/bin/uxterm /usr/X11R6/bin/uxterm.orignail
  3. /usr/X11R6/bin/uxterm を編集
  * 5 行目を以下のように変更
program=/usr/X11R6/bin/xterm.original
  1. /usr/X11R6/bin/uxterm からシンボリックリンク /usr/X11R6/bin/xterm を作成
    # cd /usr/X11R6/bin
    # ln -s uxterm xterm

もとに戻すには /usr/X11R6/bin/uxterm, /usr/X11R6/bin/xterm を削除して、*.original を元の名前に変更します
# mv /usr/X11R6/bin/xterm.original /usr/X11R6/bin/xterm
# mv /usr/X11R6/bin/uxterm.original /usr/X11R6/bin/uxterm


Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo