FreeBSD QandA 1207
Q. C言語の printf 文で日本語を表示させようとすると、コンパイル時に
エラーが出るときがあるんですが(コンパイルできる時もある)。
A. ソースの日本語コードが JISコードになっていませんか?
% echo 'あいう' | nkf -j | hexdump -c
0000000 033 $ B $ " $ $ $ & 033 ( B \n
でわかるように、JIS コードの「あ」には " というキャラクタコードが
含まれているため、printf("..") の "" の対応がおかしくなり
コンパイル時にエラーになります。しかし
% echo 'ほげほげ' | nkf -j | hexdump -c
0000000 033 $ B $ [ $ 2 $ [ $ 2 033 ( B \n
のように、JIS コードには常に " が含まれているわけではないので、
表示させたい文字によって、エラーになったりならなかったりします。
EUC だと、日本語部分のコードは ASCII コードとは重ならない値を使うため、
エラーにはなりませんので、ソースを EUC コードに変換してください。
変換方法は
[管理番号 1253]
Q. ファイルの文字コードを変換したいのですが。
[管理番号 1289]
Q. 新規ファイルをエディタで作成したときの、文字コード(JIS、EUCなど)を
指定したいのですが。
を参照してください。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。