拙著『プログラマのための文字コード技術入門』にも一言だけ書いたのですが、オープンソースのデータベース管理システムとして有名なMySQLのバージョン5.0とか5.1とかは、UTF-8として3バイトまでしか対応していません。
これは今どき考えられないくらい古い仕様です。3バイトのUTF-8というのは、Unicodeの基本多言語面(BMP) という、16ビット固定で世界中の文字を符号化するんだと(誤って)言い張っていた、古き良き時代のUnicodeの範囲しか扱えません。
MySQLの5.5.3というバージョンではようやく4バイトのUTF-8への対応が図られたようです。5.5.3の変更点を記したページに記されています。
これを使えば、魚の名前の𩸽(ほっけ、U+29E3D)だとか、偏旁の𧾷(足偏、U+27FB7)だとか、あるいは日本の地名として𣖔木作(ほうのきざく、福島県)の「𣖔」(U+23594)や𣗄代(たらのきだい、山形県)の「𣗄」(U+235C4)などといった、JIS X 0213に含まれる漢字がようやく扱えるようになります。一部の人が希望しているであろうIVSや(今後のバージョンのUnicodeに入る予定の)携帯絵文字に対応するにも4バイトのUTF-8は必要です。
ただし、文字コードの指定として、従来の "utf8" とは別に、"utf8mb4" という名前を持つ別の文字コードとして定義されているようなので注意が必要です。
ちなみに、同じくオープンソースのDBMSであるPostgreSQLは、既に4バイトのUTF-8に対応しています。それだけでなく、JIS X 0213の符号化方式のEUC-JIS-2004やShift_JIS-2004にも対応しています。
コメントする