MySQL バージョン 4.1 以降、Unicode
データを保存するために次の新しいキャラクタセットが用意されています:
ucs2
(UCS-2 Unicode
キャラクタセット)および utf8
(Unicode キャラクタセットの UTF-8 エンコード)。
UCS-2(Unicode のバイナリ表現)では、各文字は 2 バイトの Unicode と最上位のバイトで最初に表現されます。例 : "ラテン文字の大文字 A" はコード 0x0041 ですが、2 バイトシーケンス 0x00 0x41 として保存されています。"キリル文字の小文字 YERU"(Unicode 0x044B)は2 バイトシーケンス 0x04 0x4B として保存されています。Unicode 文字および対応するコードについては、Unicode Home Page を参照してください。
一時的な制限:UCS-2
はクライアントキャラクタセットとしては(まだ)使用できません。つまり、SET
NAMES ucs2
は有効ではないということです。
UTF8 キャラクタセット(Unicode 表現の変換)は、Unicode データを保存する別の方法であり、RFC2279 に基づき実装されています。さまざまな Unicode 文字を長さの異なるバイトシーケンスに適合させることが、UTF8 キャラクタセットの概念です。
基本的なラテン文字、数字、句読点は 1 バイトを使用します。
ヨーロッパおよび中東のスクリプト文字の多くは、2 バイトシーケンスに適合します。拡張ラテン文字(チルダ、長音、鋭アクセント、抑音アクセントその他のアクセント付き)、キリル文字、ギリシア文字、アルメニア文字、ヘブライ文字、アラビア文字、シリア文字その他。
韓国語、中国語、日本語の表意文字は、3 バイトシーケンスを使用します。
現時点では、MySQL UTF8 サポートに 4 バイトシーケンスは含まれていません。
ヒント:スペースを UTF8
で保存するには、CHAR
ではなく
VARCHAR
を使用してください。
そのようにしないと、MySQL では CHAR(10)
CHARACTER SET utf8
カラムに対して 30
バイトを確保しなければなりません。これは、使用可能な最大長が
30 バイトであるためです。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.