MySQL の Unicode 文字セット: 'Ä' の異常を理解する
MySQL の文字 'ä'、'ö'、および検索時に「ü」を「AAO」として使用すると、混乱する可能性があります。この動作を理解するには、Unicode 文字セットとその照合順序の世界を詳しく調べる必要があります。
utf8_general_ci や utf8_unicode_ci など、言語固有ではない Unicode 照合順序では、特定の Unicode 文字が同等として扱われます。具体的には、文字「Ä」、「Ö」、「Ü」は、基本的に等価な「A」、「O」、「U」に正規化されます。この正規化は、発音が似ている文字が比較や検索で同じように扱われるようにするために行われます。
この正規化を無効にして、正確な文字列 'Härligt' の大文字と小文字を区別した検索を実行するには、utf8_bin を使用できます。 Collation:
select * from topics where name='Harligt' COLLATE utf8_bin;
または、latin1_bin:
select * from topics where name ='Härligt' COLLATE latin1_bin;
など、クエリのみに別の照合順序を使用することもできます。ただし、Ä = を使用せずに大文字と小文字を区別しない検索が必要な場合は、暗黙的なウムラウト変換を行わずに大文字と小文字を区別しない比較を行う MySQL 照合順序がないため、変換の場合は別のアプローチを使用する必要があります。
以上がMySQL 検索で「Ä」が「AAO」になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。