我做过这样的备份:
服务器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/