開発者の人生の中で、12%くらいは文字コードで悩まされていると思う。
Java・JDBCにおけるCP932の"〜"問題。PerlのUTF-8フラグ。
MySQL4.1の文字コードの自動変換機能。通信プログラムの制御文字とか。
ちょっと体系的に知りたくて、本を読んでみた。
- 作者: 深沢千尋
- 出版社/メーカー: ラトルズ
- 発売日: 2003/07/01
- メディア: 単行本
- 購入: 5人 クリック: 116回
- この商品を含むブログ (51件) を見る
学んだこと、思い出したこと。
EUC-JPは、ハイフン。Shift_JISはアンダースコア
exportの時によく悩む。
Shift_JISの困ったチャン。
漢字コードの一部に制御コードが紛れ込んでいる。
この前、S_JISのデータをDBにダンプする時にエラーが起きて困っていた。
そりゃそうか。"表"とかね。
EUC
自分がどこの国のコードなのかは、自身には持たない。
EUC-JPとEUC-KR,EUC-CNのコードは被っている。コード外に持っている必要がある。
UTF-8
実は可変長。1〜6バイト。ひらがな・カタカナ・漢字は3バイト。
ASCII部分はASCIIと共通。
なんで、ASCIIしか扱えないアプリでも、ASCII部分のみは通用する。
ASCII部分で構成されていたら、尚更問題ない。(人は、それをASCIIと呼ぶ・・・。)
ISO 2022
複数のコード系を切り替えて使える。柔軟。その分、プログラマ泣かせ。
ISO-2022-JP
ASCIIとJISローマ字、78JIS、83JISが使える文字集合
ISO-2022-JP-1
ISO-2022-JPの文字集合に加えて、
JIS X 0212-1990(補助漢字)
ISO-2022-JP-2
ISO-2022-JPの文字集合に加えて、
GB2312-80(中国)、JIS X 0212-1990(補助漢字) KS X 1001:1992(韓国)
ISO 8859-1:1998(ラテン文字1) ISO 8859-7:1998(ラテン/ギリシャ文字)
中国からのスパムは、ISO-2022-JP-2かUTF-8が多いのかな?
ちなみにISO-2022-JPには、半角カナは無い。
メールで半角カナを送られると困る人もいる。
BASE64
メールで、バイナリデータを添付する時に使われるエンコード。
Shif_JISやEUC-JPなどの8ビット文字をエンコードして送られる。
Webページの美乳
EUC-JPのWebページは、美乳という文字を入れておけば文字化けしない。
結構有名な話。何故なら、EUC-JPにしかない0xfd,0xfeというコードがあるから。
そんなことより、ちゃんとエンコードの指定をしておけと言うお話。
所感
斜め読みしたけど、かなり良い。一家に一冊ぐらいのレベルです。
最初から知っていれば、はまる事も少ないはず。
難点は、重いので寝転がって読めない・・・。手が疲れる