MySQLの"UTF-8"にご用心

| コメント(0) | トラックバック(0)

拙著『プログラマのための文字コード技術入門』にも一言だけ書いたのですが、オープンソースのデータベース管理システムとして有名な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にも対応しています。

トラックバック(0)

トラックバックURL: http://yanok.net/yanok/mt-tb.cgi/116

コメントする

最近のブログ記事

朝鮮半島の訃報の第3水準漢字
朝鮮戦争で韓国軍として活躍した白善燁氏が…
テレワークの環境改善〜CO2濃度をチェックする
テレワークの問題点 新型コロナウイルスの…
エンジニアHubにて「文字コード再入門─ Unicodeでのサロゲートペア、結合文字、正規化、書記素クラスタを理解しよう!」公開
「エンジニアHub」にて記事を執筆しまし…
National Geographic Your Shot で Daily Dozen に選ばれた話
ブログをさぼっている間に時間がずいぶん経…
情報処理学会から山下記念研究賞を頂いた話
ブログをさぼっている間に時間がずいぶん経…

広告