10.1.14.7 アジアの文字セット

サポートされているアジアの文字セットには、中国語、日本語、韓国語、タイ語が含まれています。これらは複雑な場合があります。たとえば、中国語の文字セットは数千種類の文字に対応している必要があります。cp932 および sjis 文字セットの追加情報については、セクション10.1.14.7.1「cp932 文字セット」を参照してください。

MySQL でのアジアの文字セットのサポートに関連したよくある質問および問題に対する回答については、セクションA.11「MySQL 5.6 FAQ: MySQL の中国語、日本語、および韓国語の文字セット」を参照してください。

  • big5 (Big5 繁体字中国語) 照合順序:

    • big5_bin

    • big5_chinese_ci (デフォルト)

  • cp932 (SJIS for Windows 日本語) 照合順序:

    • cp932_bin

    • cp932_japanese_ci (デフォルト)

  • eucjpms (UJIS for Windows 日本語) 照合順序:

    • eucjpms_bin

    • eucjpms_japanese_ci (デフォルト)

  • euckr (EUC-KR 韓国語) 照合順序:

    • euckr_bin

    • euckr_korean_ci (デフォルト)

  • gb2312 (GB2312 簡体字中国語) 照合順序:

    • gb2312_bin

    • gb2312_chinese_ci (デフォルト)

  • gbk (GBK 簡体字中国語) 照合順序:

    • gbk_bin

    • gbk_chinese_ci (デフォルト)

  • sjis (Shift-JIS 日本語) 照合順序:

    • sjis_bin

    • sjis_japanese_ci (デフォルト)

  • tis620 (TIS620 タイ語) 照合順序:

    • tis620_bin

    • tis620_thai_ci (デフォルト)

  • ujis (EUC-JP 日本語) 照合順序:

    • ujis_bin

    • ujis_japanese_ci (デフォルト)

big5_chinese_ci 照合順序は画数でソートします。

MySQL でのアジア言語照合順序の追加情報については、Collation-Charts.Org (big5cp932eucjpmseuckrgb2312gbksjistis620ujis) を参照してください。

10.1.14.7.1 cp932 文字セット

cp932 が必要な理由

MySQL では sjis 文字セットは IANA で定義される Shift_JIS 文字セットに対応しており、これらは JIS X0201 および JIS X0208 文字セットをサポートしています。(http://www.iana.org/assignments/character-sets を参照してください。)

ただし、記述用語としてのSHIFT JISの意味は非常にあいまいになっており、さまざまなベンダーが定義した Shift_JIS に対する拡張も含める場合もあります。

たとえば、日本語 Windows 環境で使用されるSHIFT JISは、Microsoft による Shift_JIS の拡張であり、正式な名称は Microsoft Windows Codepage : 932 または cp932 です。Shift_JIS でサポートされる文字に加え、cp932 では、NEC 特殊文字、NEC 選定 IBM 拡張文字、IBM 選定文字などの拡張文字をサポートします。

多くの日本語ユーザーは、これらの拡張文字を使用するときに問題に直面してきました。これらの問題は次の要因によって生じていました。

  • MySQL が自動的に文字セットの変換を行なっていること。

  • 文字セットが Unicode (ucs2) を使用して変換されていること。

  • sjis 文字セットが、これらの拡張文字の変換をサポートしていないこと。

  • いわゆるSHIFT JISから Unicode への変換には複数の変換ルールが存在し、文字によっては、変換ルールに従って別々に Unicode に変換される場合があること。MySQL ではこれらの変換ルールのうち、1 つしかサポートしていません (詳細は後述します)。

MySQL の cp932 文字セットは、これらの問題を解決するように設計されています。

MySQL が文字セットの変換をサポートするので、異なる変換ルールを持つ IANA の Shift_JIScp932 を 2 つの異なる文字セットに区分することが重要になります。

cp932sjis との相違点

cp932 文字セットは次の点で sjis と異なります。

一部の文字については、ucs2 との間の変換は、sjiscp932 との場合と異なります。次の表に、これらの違いを示します。

ucs2 への変換:

sjis/cp932 sjis -> ucs2 の変換 cp932 -> ucs2 の変換
5C 005C 005C
7E 007E 007E
815C 2015 2015
815F 005C FF3C
8160 301C FF5E
8161 2016 2225
817C 2212 FF0D
8191 00A2 FFE0
8192 00A3 FFE1
81CA 00AC FFE2

ucs2 からの変換:

ucs2 ucs2 -> sjis の変換 ucs2 -> cp932 の変換
005C 815F 5C
007E 7E 7E
00A2 8191 3F
00A3 8192 3F
00AC 81CA 3F
2015 815C 815C
2016 8161 3F
2212 817C 3F
2225 3F 8161
301C 8160 3F
FF0D 3F 817C
FF3C 3F 815F
FF5E 3F 8160
FFE0 3F 8191
FFE1 3F 8192
FFE2 3F 81CA

日本語文字セットのユーザーは、--character-set-client-handshake (または --skip-character-set-client-handshake) を使用すると大きな効果が得られることに注意してください。セクション5.1.3「サーバーコマンドオプション」を参照してください。


User Comments
  Posted by on September 27, 2005
As of MySQL 4.1.14,
Please notice that for Traditional Chinese (BIG5), collation 'big5_chinese_ci' uses stroke count of the characters on ordering; while in Simplified Chinese (GB2312), collation 'gb2312_chinese_ci' uses Pinyin of the characters on ordering.
Sign Up Login You must be logged in to post a comment.