講習会「文字集合と文字エンコーディング」を開催しました

「文字集合と文字エンコーディング」というタイトルで、経験2〜3年目の人をターゲットに社内勉強会を開催しました。文字集合という単語を知っている必要はないですけど、少なくともUTF-8とShift_JISとでは扱える文字の種類数が違うことだけは伝えたかったので、その意味では目標が達成できたと思っています。

まとめ

  • 文字集合とは、扱える文字の集合
    • JIS X 0208なら6000文字くらいの日本語の文字
    • UCS-2なら60000文字くらいの世界中の主要な文字
  • 文字エンコーディングとは、文字の集合をバイト列に直す方式
    • Shift_JISはJIS X 0208(など)を1〜2バイトにする
    • UTF-8はUCS-2を1〜3バイトにする
  • 文字エンコーディング関連のツールを使いこなそう
    • nkfやlvを使いこなそう
    • 日本語を探すならlgrep
    • 最終兵器:hexjaで16進ダンプ

ムービー

発表資料

補足など

若い人がターゲットということで、難しいことを言わないように、でも嘘はつかないように心がけたつもりです。でも、万一嘘があったら教えてください。

正確に言うとUTF-8の扱う文字集合はUCS-4で、UTF-8の1文字は1〜4バイトになりますけど、説明が長くなりそうだったので上のように説明してしまいました。UCS-2だけ扱うなら1〜3バイトであり、身近なデータであればASCII1バイト、日本語3バイトになるよ、という程度の理解で十分だろうと思います。

また、今回の説明ではUCS-2を文字集合の意味で使いましたが、サロゲートペアなしのUTF-16と同義の文字エンコーディングという意味で使っても間違いでは無いようです。というか、あれこれ調べてみましたが、何が正しいのか私自身混乱していたりします…。

参考URL

コメント / トラックバックはありません

コメントする