我做过这样的备份:
服务器A:
mysqldump--all databases-u user-ppwd--default character set=latin1>backup.sql
服务器B:
mysql-u user-ppwd——默认字符集=latin1但是现在,当我用PHP显示MYSQL中的数据时,我有这样的东西:
“GÃnÃral”。
我的html页面是拉丁文的。我的数据库在拉丁美洲。
如果我把utf8解码($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)

最佳答案

当备份中的字符集有问题时,应尝试以正确的方式执行backup and restore命令,而不要使用shell的<>重定向程序,因为该重定向会破坏数据库文本的字符集。
备份

mysqldump -u root -p --opt --all-databases -r backup.sql

恢复
mysql -uuser -p --default-character-set=utf8 database
mysql> SET names 'utf8';
mysql> SOURCE backup.sql;

关于mysql - mysqldump之后的MYSQL latin1和utf8,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17251832/

10-12 22:36