無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 9 キャラクタセットサポート :: 9.10 MySQL でサポートされるキャラクタセットと照合順序 :: 9.10.1 Unicode キャラクタセット
« 9.10 MySQL でサポートされるキャラクタセットと照合順序

9.10.2 西ヨーロッパのキャラクタセット »
Section Navigation      [Toggle]
  • 9.10 MySQL でサポートされるキャラクタセットと照合順序
  • 9.10.1 Unicode キャラクタセット
  • 9.10.2 西ヨーロッパのキャラクタセット
  • 9.10.3 中央ヨーロッパのキャラクタセット
  • 9.10.4 南ヨーロッパおよび中東のキャラクタセット
  • 9.10.5 バルト語のキャラクタセット
  • 9.10.6 キリル語のキャラクタセット
  • 9.10.7 アジアのキャラクタセット

9.10.1. Unicode キャラクタセット

MySQLにはキャラクタセットが 2 つ存在します。これらのキャラクタセットを使用し、約 650 の言語でテキストを保存することができます。

  • ucs2 (UCS-2 Unicode) 照合順序

    • ucs2_bin

    • ucs2_czech_ci

    • ucs2_danish_ci

    • ucs2_esperanto_ci

    • ucs2_estonian_ci

    • ucs2_general_ci (デフォルト)

    • ucs2_hungarian_ci

    • ucs2_icelandic_ci

    • ucs2_latvian_ci

    • ucs2_lithuanian_ci

    • ucs2_persian_ci

    • ucs2_polish_ci

    • ucs2_roman_ci

    • ucs2_romanian_ci

    • ucs2_slovak_ci

    • ucs2_slovenian_ci

    • ucs2_spanish2_ci

    • ucs2_spanish_ci

    • ucs2_swedish_ci

    • ucs2_turkish_ci

    • ucs2_unicode_ci

  • utf8 (UCS-8 Unicode) 照合順序

    • utf8_bin

    • utf8_czech_ci

    • utf8_danish_ci

    • utf8_esperanto_ci

    • utf8_estonian_ci

    • utf8_general_ci (デフォルト)

    • utf8_hungarian_ci

    • utf8_icelandic_ci

    • utf8_latvian_ci

    • utf8_lithuanian_ci

    • utf8_persian_ci

    • utf8_polish_ci

    • utf8_roman_ci

    • utf8_romanian_ci

    • utf8_slovak_ci

    • utf8_slovenian_ci

    • utf8_spanish2_ci

    • utf8_spanish_ci

    • utf8_swedish_ci

    • utf8_turkish_ci

    • utf8_unicode_ci

注:ucs2_roman_ciとutf8_roman_ciの照合順序では、IとJおよびU とV は等価として比較されます。

ucs2_hungarian_ciとutf8_hungarian_ci の照合順序はMySQL 5.1.5で追加されています。

MySQL はutf8_unicode_ci照合順序を、以下に示されるhttp://www.unicode.org/reports/tr10/Unicode 照合順序アルゴリズム(UCA) によって実行されます。照合順序ではバージョン-4.0.0 UCAのウェイトキーが使用されます。http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt 以下ではutf8_unicode_ciを使用しますが、ucs2_unicode_ciに対しても有効です。

現在、utf8_unicode_ci照合順序はUnicode 照合順序アルゴリズムを部分的にのみサポートしています。中にはまだサポートされていない文字もあります。また、結合マークは完全にはサポートされていません。このことはベトナム語を中心に、ロシア内のマイノリティ言語に影響します。

utf8_unicode_ci主な特徴は、拡張をサポートしていることです。それは1つの文字が他の文字のコンビネーションと等価であると比較された場合です。例えば、ドイツ語や他の言語では、‘s’ は‘ss’に相当します。

utf8_general_ciは拡張をサポートしないレガシー照合順序です。文字間で1対1の比較しかできません。つまり、utf8_general_ci照合順序に対する比較の方が早いが、utf8_unicode_ciに比べてわずかに正確性が劣ります。

例えば、以下の等式がutf8_general_ciとutf8_unicode_ciにおいて証明されます。

A = A
O = O
U = U

照合順序間の違いはutf8_general_ciに対して有効です。

s = s

utf8_unicode_ciにとって有効である場合:

s = ss

MySQL がutf8キャラクタセットに対する特定言語の照合順序を実行するのはutf8_unicode_ci内での順序が言語に対してうまく機能しないときだけです。 例えば、utf8_unicode_ciはドイツ語とフランス語では正しく機能するので、これら2言語に対する特定のutf8照合順序を作成する必要はありません。

utf8_general_ciもドイツ語・フランス語ともに有効ですが、ただし‘s’は‘s’と等価であり、‘ss’と等価ではありません。これが使用しているアプリケーションに対して可能な場合、utf8_general_ciの方が早いのでこちらをお勧めします。それ以外の場合、utf8_unicode_ciを使うほうがより正確です。

utf8_swedish_ciは他のutf8 特定言語の照合順序のように、追加言語ルールとともにutf8_unicode_ciから由来します。例えば、スウェーデン語ではドイツ語やフランス語を使用するユーザでは予期しないような以下の関係が有効です

U = Y < O

utf8_spanish_ciとutf8_spanish2_ci照合順序は現代スペイン語および従来のスペイン語に対しても同様に対応します。両照合順序において‘n’ (n-tilde)は、 ‘n’や‘o’とは区別すべき文字です。さらに従来のスペイン語では‘ch’ は‘c’と‘d’は区別すべき文字であり、‘ll’は‘l’と‘m’とも区別すべき文字です。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.