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

第7章の続き、Ruby 1.9 での文字列扱いについてです。

  • マジックコメントについて
    • Shift_JIS は(略)完全な ASCII 互換ではありませんが、ruby 1.9 では ASCII互換とみなしており」ASCII 互換じゃなかったのか。
  • String は自分のエンコーディングを知っている
  • Unicode エスケープって 1.9 からの機能だったんですね。なんとなく 1.8 にもあったような気がしていた
  • String#each_char で一文字(のString)毎、String#each_codepoint で符号位置(Integer)毎のイテレータ
    • ただし、codepoint と書いてあるけど EUC-JP や Shift_JIS では符号化された結果のバイト列を返すので画区点番号ではない
  • String#length は文字数を返す。ただし結合文字についてはばらばらに数える
  • String#encode のオプション引数の :xml => :text で XML のメタ文字のエスケープができる。知らなかった!!

るりまの記事も読んでいて Ruby 1.9文字コードの扱いのことはそこそこ知っているつもりですが新しく知ったこともあり(XMLエスケープとか)、ためになりました。