1

PhpMyAdmin は、テーブルをブラウズしたりクエリを作成しようとしたときに、文字を正しく (または表示したい方法で) 表示しません。ただし、「SET NAMES LATIN1;」の場合、すべてが正しく表示されます。クエリの前に含まれます。また、コマンド ライン クライアントを使用すると、サーバー側ですべてが正しく表示されます。phpMyAdmin フロント ページで MySQL 接続照合設定を latin1 に変更しようとしましたが、効果がありません。なぜこれが起こっているのかわかりません。これは、通信の問題か、二重エンコードか何かが原因ですか?

MySql サーバー設定 (コマンド ライン クライアントから):

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
4

1 に答える 1

0

クエリの上に追加ini_set('default_charset', 'UTF-8');します。

または、mysqliを使用している場合:

$dbc = mysqli_connect($host, $user, $password, $database)
    or die('Error connecting to the database');

if (!mysqli_set_charset($dbc, "utf8")) {
    printf("Error loading character set utf8: %s\n", mysqli_error($dbc));
} else {
    printf("Current character set: %s\n", mysqli_character_set_name($dbc));
}
于 2012-12-10T17:27:49.990 に答える