2012-07-18 10 views
28

utf16またはutf32?私は多くの言語でコンテンツを保存しようとしています。言語の中には、倍幅フォントを使用するものがあります(たとえば、日本語フォントの方が英語フォントの2倍です)。どの種類のデータベースを使用するべきかはわかりません。これらの4つの文字セットの違いに関するすべての情報...Utf8_general_ciまたはutf8mb4または...?

答えて

40

MySQLのutf32およびutf8mb4(および標準のUTF-8)は、Unicodeで指定された任意の文字を直接格納できます。前者は1文字あたり4バイトの固定サイズであり、後者は1文字あたり1バイトから4バイトです。

utf8mb3オリジナルのutf8は、CJVK(中国語、日本語、ベトナム、韓国語)をカバーする最初の65,536コードポイントのみを格納でき、1文字あたり1〜3バイトを使用します。

utf16は、最初の65,536コードポイントに2バイトを使用し、それ以外はすべて4バイトを使用します。

フォントに関しては、厳密には視覚的なものです。

"The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)"

MySQL documentation for Unicode support参照してください。

+5

明白であるように、 'utf8_general'に関するコメントは他のすべての' utf8_ * '照合にも適用されます。すべてがMySQLの 'utf8mb3'別名' utf8'文字セットを使用します。 –

+0

@JohnFlatnessありがとうございました。あなたのコメントは私が次に尋ねるものです。私はUTF-16がマンダリン文字に2バイトを使用したと考えました。私はあなたが私に与えた文書を見て、それが65,536の意味をカバーすることを期待しています。 XD –

+0

中国語の文字は基本多言語平面(最初の65,536コードポイント)内にあります。 –

関連する問題