CGIスクリプト配布 - CGI WEB


Home back
和文コードと文字化け





■和文コード
和文コードにはシフトJISコード、EUC-JPコード、ISO-2022-JPコード等があります。 UNIXマシンではEUC-JPコード、WindowsやMacマシンではシフトJISコードが採用されています。 テキストエディタによっては、どのコードで保存するのかを指定出来るものもありますがWindows付属のメモ帳等では勝手にシフトJISコードで保存します。

EUC-JPコードで保存された和文は文字化けを起こす事がありませんのでCGIプログラムをEUC-JPコードで保存し、これをUNIXサーバに設置して実行させれば文字化けを気にする必要はありません。

■シフトJISコードの文字化け
シフトJISコードが文字化けを起こす原因は、一部の2バイト文字の2バイト目が「\」と同じ文字コードを使用している為です。 Perl処理系では「\」を特殊文字(エスケープシーケンス)として処理しますので結果的に文字化けしてしまうという事です。 文字化けを起こす一部の2バイト文字には以下のようなものがあります。

ソ 噂 欺 圭 構 十 申 貼 能 表 暴 予

print "一覧表示";

実行すると「一覧侮ヲ」と表示されます。 回避するには

print "一覧表\示";

文字化けを起こす2バイト文字の直後に「\」を付けます。 または

print '一覧表示';

シングルクオートで囲み文字列を展開させないようにします。 しかしこの方法では、以下のように

print '一覧表';

文字化けを起こす2バイト文字が最後に来た場合はプログラム実行エラーとなりますので注意して下さい。 この場合は

print '一覧表\';
または
print "一覧表\";

として、やはり文字化けを起こす2バイト文字の直後に「\」を付けます。



□更新履歴
 2007.04.22 全体的に内容を見直し




CGI WEB