プログラマのための文字コード技術入門 第8章「はまりやすい落とし穴とその対処」その2
今日は第8章の後半です。
- 古くから Unix 使ってる人間にはおなじみの改行コード問題
- nkf -L オプションで改行コードの変換もできる
- 全角半角問題
- 円記号問題
- 元はといえば ISO/IEC 646 と JIS X 0201 で 0x5C の文字をバックスラッシュと円記号とそれぞれ違う文字をわりあててしまったのが事の起こり
- 表示上の問題はフォントによることがありアプリケーションで固有とは限らない
- 文字コードの変換を通すとより難しい問題が……
- 原理主義的にはバックスラッシュと円記号はそれぞれ「文字」として、文字コード内でどうエンコードされるかに応じて解釈すべき -> 「半角の」バックスラッシュが存在しない Shift_JIS においてはたとえば改行文字を "\n" と書くべき
- さすがにこれはちょっと……
- 「Shift_JIS は使わない」というのがよい対処法な気がしてきました
- 波ダッシュ問題
これで第8章も読み終えて、本編は全て終わりました。
本書を読む前には、漠然と「文字コードは難しい」というイメージを抱いていました。読み終えて今、やはり「文字コードは難しい」と思います。計算機での処理の複雑さだけではなく、歴史的経緯、互換性、政治的/文化的こだわり……いろいろなものが絡みあっていて、すんなり解決できない問題がうごめいています。でも同じ「文字コードは難しい」でも読む前と後でそこにこもる実感は少しは違ってきました。
と、まとめたところですが、本書にはこの後 Appendix が A.1 から A.6 までかなり沢山ありますので、まだしばらくこれを読みます。「本書執筆の舞台裏」なんておもしろそうです。