4519 次
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 に答える