10bet网址
MySQL 5.6リファレンスマニュアル
本手册下载
PDF (Ltr)- 26.8 mb
PDF (A4)- 26.8 mb


10.1.10 Unicodeのサポト

Unicodeサポートの(MySQL 4.1での)初期実装には,Unicodeデータを格納するための次の2つの文字セットが含まれていました。

  • ucs2。文字ごとに16ビットを使用するUnicode文字セットのUCS-2エンコ。

  • use utf8。文字ごとに1から3バイトを使用するUnicode文字セットのutf - 8エンコーディング。

これらの2つの文字セットは,Unicodeバージョン3.0の基本语言平面(BMP)の文字をサポートします。BMP文字には次の3の特性があります.使用实例

  • これらのコド値は0から65535(またはU + 0000..U +飞行符です。

  • これらは,ucs2と同様に,16ビット固定の単語でエンコドできます。

  • これらは,use utf8と同様に,8,16,または24ビットでエンコドできます。

  • 主要言語のほとんどすべての文字には,これらで十分です。

前述の文字セットではサポトされていない文字には,bmpの範囲外にある補助文字が含まれます。BMPの範囲外の文字は,替换字符と見なされ,Unicode文字セットへの変換時に,“?”に変換されます。

MySQL 5.6でのUnicodeのサポートには補助文字が含まれるので,範囲がより広いため,より多くのスペースを占める新しい文字セットが必要になります。次の表では,以前のUnicodeサポートと現在のUnicodeサポートの機能を簡単に比較しています。

MySQL 5.5より前 MySQL 5.5以降
すべてのUnicode 3.0文字 すべてのUnicode 5.0および6.0文字
補助文字なし 補助文字あり
ucs2文字セット,bmpのみ 変更なし
3バトまでのuse utf8文字セット,bmpのみ 変更なし
4バトまでの新しいutf8mb4文字セット,bmpまたは補助
新しいutf16文字セット,bmpまたは補助
新しいutf16le文字セット,bmpまたは補助(5.6.1以降)
新しいutf32文字セット,bmpまたは補助

これらの変更には上位互換性があります。新しい文字セットを使用する場合、アプリケーションの非互換性の問題が生じる可能性があります。セクション10.1.11”以前のUnicodeサポートから現在のUnicodeサポートへのアップグレード”を参照してください。さらにこのセクションでは,use utf8から(4バe @ e @トの)utf8mb4文字セットに変換する方法と,そのときに適用される可能性がある制約にいて説明します。

MySQL 5.6は,次のUnicode文字セットをサポトします。

  • ucs2。文字ごとに16ビットを使用するUnicode文字セットのUCS-2エンコ。

  • utf16。Unicode文字セットのUTF-16エンコディング。ucs2に似ていますが,補助文字用の拡張機能があります。

  • utf16le。Unicode文字セットのUTF-16LEエンコディング。utf16と似ていますが,ビッグエンディアンではなくリトルエンディアンです。

  • utf32。文字ごとに32ビットを使用したUnicode文字セットのUTF-32エンコ。

  • use utf8。文字ごとに1から3バイトを使用するUnicode文字セットのutf - 8エンコーディング。

  • utf8mb4。文字ごとに1から4バイトを使用したUnicode文字セットのutf - 8エンコーディング。

ucs2およびuse utf8はBMP文字をサポトします.使用实例utf8mb4utf16utf16le,およびutf32は,bmpおよび補助文字をサポトします。

類似した一連の照合順序を,ほとんどのUnicode文字セットで使用できます。たとえば,それぞれにはデンマ,ク語の照合順序があり,その名前はucs2_danish_ciutf16_danish_ciutf32_danish_ciutf8_danish_ci,およびutf8mb4_danish_ciです。例外はutf16leであり,2 .の照合順序しかありません。セクション10.1.14.1 " Unicode文字セット"にはすべてのUnicode照合順序が一覧表示されており,補助文字の照合順序プロパティーについても説明しています。

多くの補助文字は東アジアの言語のものですが,MySQL 5.6で追加するサポートは,Unicode文字セットでのより多くの日本語と中国語の文字に対するサポートであり,新しい日本語および中国語の文字セットのサポートではありません。

ucs - 2, utf - 16,およびutf - 32のMySQLでの実装は,ビッグエンディアンのバイト順で文字を格納し,値の先頭にバイト順マーク(BOM)を使用しません。ほかのデータベースシステムでは,リトルエンディアンのバイト順またはBOMを使用していることもあります。このような場合,これらのシステムとMySQLの間でデータを転送するときに,値の変換を実行する必要があります。Utf-16leの実装はリトルエンディアンです。

MySQLはUTF-8値にBOMを使用しません。

Unicodeを使用したサバと通信する必要があるクラアントアプリケションは,たとえば设置名称“use utf8”ステトメントを発行することによって,クラアント文字セットをそれに従って設定する必要があります。ucs2utf16utf16le,およびutf32は、クラ以及アント文字セットとして使用できません。まり,これらは组名称または设置字符集で機能しません。(セクション10.1.4 "接続文字セットおよび照合順序"を参照してください。)

以降のセクションでは,MySQLにおけるUnicode文字セットについてさらに詳しく説明します。


本手册下载
PDF (Ltr)- 26.8 mb
PDF (A4)- 26.8 mb