2
4

3 に答える 3

4

このクエリを実行していることに気付きました...mysql_query('SET CHARACTER SET utf8');
これを次のように変更してみてください...

mysql_query("SET NAMES 'utf8'");

これにより、接続が UTF-8 であることを確認できます。

また、この記事の項目のリストを確認してみてください... http://blog.loftdigital.com/blog/php-utf-8-cheatsheet
これは、UTF-8 を使用していることを確認するために必要な手順を示しています。サイト/アプリケーションの前から後ろまで、要約すると:

  • PHP の mbstring 拡張機能がありmb_internal_encoding('UTF-8');、スクリプトに設定されていることを確認してください。
  • データベースに接続した後、この MySQL クエリを実行していることを確認してください。mysql_query("SET NAMES 'utf8'");これにより、接続が UTF-8 であることが保証されます。
  • 出力の HTTP ヘッダーを設定します... header('Content-type: text/html; charset=UTF-8');. 上記で設定した場合、これは必要ないようですがmb_internal_encoding()、デバッグには役立ちます
  • HTML ページの出力エンコーディングが設定されていることを確認してください...<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
于 2012-09-24T15:06:36.677 に答える
1

文字セットの照合で選択を行い、次のように utf8_bin を使用 してみてください。

SELECT k COLLATE utf8_bin AS k1
FROM t1
ORDER BY k1;

それがうまくいく場合は、alter tableを使用して列の照合を変更できます。これは、今日私のデータベースの1つに使用した例です:(これはphpMyAdminでも簡単に行うことができます)

ALTER TABLE  `users` 
CHANGE  `name`  `name` VARCHAR( 255 ) 
CHARACTER SET utf8 COLLATE utf8_bin NOT NULL

ただし、最初にバックアップを作成してください。

于 2012-07-14T15:10:23.900 に答える