Я сделал резервную копию так:MYSQL latin1 и utf8 после туздЫшпр
Сервер: туздЫшпр --all-базы данных -u пользователь -ppwd --default-символьный набор = latin1> backup.sql
Сервер B: MySQL -u пользователь -ppwd --default-символьный набор = latin1 < backup.sql
Но теперь, когда я показываю ДАННЫЕ из MYSQL с PHP, у меня есть что-то вроде этого: «Gà © nà © RAL».
Моя страница html находится в latin1. Моя база данных находится в latin1.
Если я помещаю utf8_decode ($ mydata); Я получаю правильный результат. Как настроить MYSQL для получения результатов в базе данных latin1?
с сервера B:
mysql> SHOW VARIABLES WHERE variable_name like 'char%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
На самом деле, когда я использую PHPMyAdmin, я могу видеть правильные данные в таблице. В таблице это «Général», но когда я показываю данные с помощью своего PHP-скрипта, я получаю «Gà © nà © ral». Если в PHP-скрипте я помещаю «utf8_decode()», данные отображаются как «Général». Поэтому я не думаю, что мои данные должны быть исправлены. – user2511827
Держу пари, что вы не можете найти «Général» и найти эту запись. PhpMyAdmin использует веб-браузер для отображения ваших данных. Браузер переводит ваши данные из закодированного latin1 (например, Gà © nà © ral) в utf-8, поэтому он правильно отобразит ваши неправильно введенные данные. Вызов utf8_decode() в php делает то же самое. Попробуйте strlen(). Бьюсь об заклад, вы находите, что длина равна 6, а не 8. –