ホームページ >バックエンド開発 >PHPチュートリアル >PHP および MYSQL での UTF8 エンコーディングの中国語ソート例、_PHP チュートリアル
この記事の例では、PHP および MYSQL における UTF8 エンコーディングの中国語のソート方法を説明し、参考のために皆さんと共有します。具体的な実装方法は以下の通りです
一般的に、中国語には 3 つの並べ替え方法があります:
1. ピンインに従って並べ替えます。
2. ストロークに従って並べ替えます。
3. 部首に従って並べ替えます。
システムのデフォルトのソート方法はピンインソートであり、弊社でもよく使用されています。以下はピンインによるソートです
1. php配列内で中国語でソートする必要がありますが、一般的にutf8形式のファイルが使用されるため、asortによる直接ソートは機能しません。 gbkとgb2312を使用できます。これは、いくつかの形式のエンコードに関係があります。 gbk と gb2312 自体のエンコードはピンインでソートされています。
この問題が解決されない場合、MySQL は実際に中国語を処理できなくなります。 この問題の原因は、MySQL が文字列のクエリ時に大文字と小文字を区別しないため、通常、ISO-8859 文字セットがデフォルトの文字セットとして使用され、比較プロセス中に中国語コード文字の大文字と小文字の変換が発生します。 。 この現象。
解決策:
中国語の文字を含むフィールドに「binary」属性を追加してバイナリ比較を行います。たとえば、「name char(10)」を「name char(10)binary」に変更します。
ソース コードを使用して MySQL をコンパイルする場合、MySQL のコンパイル時に --with--charset=gbk パラメータを使用できるため、MySQL は中国語の検索と並べ替え (デフォルトは latin1) を直接サポートします。 extra-charsets=gb2312,gbk を使用して複数の文字セットを追加することもできます。
テーブル構造を変更したり、MySQL を再コンパイルしたくない場合は、クエリ ステートメントの一部で CONVERT 関数を順番に使用することもできます。たとえば
http://www.bkjia.com/PHPjc/897692.html