SJISの問題点
プログラムを作った事のある方なら御存じだとおもいますが、SJISでは2バイト文字
の2バイト目に\や@が使われています。このことが何を意味するか分かりますね?そう
、\nや\rといったエスケープ文字列とかち合ってしまうんです。自分で書いたデータな
らなんとかできますが、外部から取り込むデータに対応するためには「日本語対応」の
PerlつまりJPerlが必要となります。自分で必要な処理を書いてもいいんですけど面倒
でしょ?それに行末の1文字を削除するといった処理をするとき、SJISだと文字列の先
頭から調べていかないと最後の文字が2バイト文字の2バイト目か1バイト文字か分か
りません。その点EUCだと8ビット目を調べて、フラグがたっていれば2バイトコードで
あるからもう1バイト取るといった事が簡単に出来ます。
出力はなるべくJISコードにしましょう。EUCとSJISにはどっちとも判別のつかないコ
ードが存在します。また8ビットコードを通さないサーバーなどを通過してしまったとき
に8ビット目が失われ、意味不明の文になってしまうかもしれません。JISだと7ビット
までで表現する事が出来るのでそんなことはありません。8ビットコードをサポートして
いるプロトコルではあまり気にする事はないとおもいますけど
ホームページQ&Aトップに戻る //
神戸フェニックスラボ2号館