[前へ]   [目次へ]   [次へ]

日本語入力の注意


   (04/08/26)テキストを一部追記しました

今回はソースの入力を行う時の日本語入力に関係する注意と推奨設定を挙げてみます。

●ソース入力時は直接入力(日本語入力をOFF)
●エディタのフォント設定は等幅フォント
●日本語入力の設定でスペースの入力を「常に半角」

この3つがポイントでしょうか。

まず、プログラムソースの入力時には基本的に日本語入力は必要ないときはOFFにします。
いちいち確定を押さなければいけない英数モードではやってられません。(笑)

ところが、注釈や文字列など、日本語が使える部分で日本語を記述後、
日本語入力を切り忘れることもあります。

その際、文字を打った場合はすぐに分かるのですが、
全角スペースを打ってしまうと、気付かずに後でエラーを提示されることがあります。
しかもそのメッセージは分かりにくいのです。

例1:ActivePerl 5.8.2の場合
Unrecognized character \x81 at test.pl line 1.
日本語にすると
test.plの1行目に認識できない文字 \x81があります
となります。

例2:Visual C++6.0の場合
(ソースの場所) : error C2018: 文字 '0x81' は認識できません。
(ソースの場所) : error C2018: 文字 '0x40' は認識できません。


Visual C++の場合は場所表示がフルパスで長いので省略しました。

どちらも言い回しは若干違うものの、同じですね。
これらのメッセージはコード中に日本語文字が混入した時に発生します。
書いてある行に全角文字が混入してないか、しっかり確認しましょう。

   ↓04/08/26追記

   0x5c問題でもこのエラーが発現することがあります。
   見つからない場合はこっちも確認してください。(Visual C++6.0日本語版ではこれは発生しません)

   ↑04/08/26追記ここまで

よくわからない時はすぐ下に打ち直してみるのも手です・・・が、
それよりもエディタのフォントを等幅フォントにしていれば思いっきり分かります。
全角だけ明らかに太さが違いますから(笑)

「認識できないと言われても・・・」といいたくなりそうですが、(笑)
全角スペースは扱い上日本語文字であり、英語(プログラム言語にはアルファベットと記号しか出てこないのが大半)
のつもりで読んでいたら突然日本語が出てきたことになり、理解不能となってしまうのです。

更に厄介なことに見た目上何もない全角スペースは発見しにくい存在です。
もしこれが大量に出てしまった時はエディタの「置換」で逃げましょう。
全角スペースは日本語文字なのでまず間違いなく置換できます。
置換先は空にするか、半角スペースに置換できるなら半角スペース2つと置換します。

このように厄介な全角スペースですが、
そもそも入力しないようにしてしまえばいいのです。
日本語入力がONでも常に半角スペースを打つようにしていれば、
切り忘れても大丈夫です。

実際、私は1度か2度しかこの問題に遭遇していません。
常に半角設定はおおいに意味があります(笑)

MS-IME2002/2007での設定方法

フォントについては、プログラムエディタなら普通最初から等幅のフォントが選択されています。
対になる幅が不均一なフォントは「プロポーショナルフォント」と呼ばれ、
フォント名に意味深な(笑)「P」が付いています。(MS PゴシックやMS P明朝など)


日本語が使えるはずの文字列内でも気は抜けません。
実行環境が英語環境だったり、マルチバイト処理に問題がある場合、
文字列内の日本語が思わぬ「化け」を起こすことがあります。

もちろん作ったプログラムも処理によってはこの問題に引っかかります。

これについてはSOLD OUTの設置マニュアルにも記載されていますし、(faq_inst.htmの文字化けしますの項)
¥マーク(文字)問題や0x5C問題などと呼ばれていたりします。
どうも0x5cで呼ぶのがネット上では有力なようです。
Googleで関係資料を探るなら「0x5C」ですね。トップ50が全て関係資料でした(笑)
とか書いてたらこの講座が1位になってんですけど・・・(笑)(08/10/09現在)


これについては次回詳しく書きます。

[前へ]   [目次へ]   [次へ]

プログラミング講座 総合目次

最終更新 2008/10/17