?????

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号館