プログラマのための文字コード技術入門 第7章「プログラミング言語と文字コード」その4

第7章の続き、Ruby 1.8 での文字列扱いについてのところから再開です。

  • Ruby 1.8 では String はただの 8ビットのバイト列。length などのメソッドもマルチバイト文字を考慮しない(バイト数を返す)
  • 文字クラスはない
  • require "jcode" すると String が拡張される。String#jlength で文字数を返すようになる
  • -K オプションによる文字コード指定。$KCODE 変数に反映される
  • 文字コード変換
    • NKF モジュール
    • Kconv - NKF モジュールのラッパ
    • IConv

Ruby 1.8 の String クラス自体は標準の状態では要するに文字コードのことは一切考えていないと言えます。平易ではありますがいざ文字コードを正しく扱おうとすると大変そうでもあります。1.9 では組み込みで文字コードを扱うようになっているので明日はそこを読みたいと思います。