最近社内で文字ものEPUBを扱う機会が増えてきたため、IVS/IVDやJIS X 0213の会話が飛び交うようになってきました。
そこで理解のベースアップとおさらいのために、今週の社内勉強会は「文字コード入門」を開催しました。
概要
用語と解説
- 文字集合(Character Set)と文字エンコーディング(Character Encoding Scheme)、符号位置(Code Point)と実際のバイト列の違い
- 色々な符号化文字集合と含まれる文字
クイズ
- ブラウザアドレスバーのこの日本語、エンコーディングはどれ?
- 7bit文字エンコーディングはどれ?
- ASCII互換エンコーディングはどれ?
- バイト列から文字長を求められるのはどれ?
- UTF-8の最大バイト数は?
- 実際に存在する標準規格はどれ?
まとめ
Webアプリを作る程度では、文字コード関連はよく分からず適当にやっても「なんとなく動く」ため、積極的に勉強するモチベーションが沸かない人もいるかも知れません。
しかし正しい理解をしておけば、
- 変なバグやセキュリティホールを作ってしまうことが減る
- 特定の環境のみ発生する文字化けに、慌てなくなる
- 文字化けする人名漢字を、事前に把握・説明できる
- フォント選びの効率が良くなる
- 目grepに役立つ
- バイト列を理解できて精神が健康になる
など、メリットが目白押しです。
また、ネイティブでごりごり書くときは、どのみちバイト列を意識せざるを得ませんね。
そのうちに、応用編/実践編や、フォントについての勉強会も開催したいと思います。