カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10810330
FAQカテゴリ(大) コンパイラ
最終更新日 2011-03-13

質問内容

日本語を使用する時に「マルチバイト文字をサポートする」にチェックを入れる理由は何ですか?

回答内容

理由は、コンパイラが2バイト文字を認識していないと、2バイトが別々の文字として認識することになり、プログラマの意図してない結果になるからです。

例えば、漢字のうち「能」はShift-JISコードで945cになりますが、5c は1バイト文字の \ と同じです。2バイト目が5cの文字は他にもあり (噂、浬、欺、構)、いずれも文字列の中に \ が存在するとしてコンパイルされます。

ところで「能」は次のように、
   a = func(x);   // xx機能

コメントの最後に現れる場合が多く、この場合、次の行が継続行になってしまい、コンパイルされないという現象になります。

参考資料URL