首页 >数据库 >mysql教程 >如何修复 MySQL 数据库中损坏的 UTF-8 编码?

如何修复 MySQL 数据库中损坏的 UTF-8 编码?

DDD
DDD原创
2024-12-09 14:20:15455浏览

How Can I Fix Broken UTF-8 Encoding in My MySQL Database?

修复损坏的 UTF-8 编码:实用的解决方案

背景:

用户经常遇到 UTF-8 编码损坏的问题,其特征是像 Ò® 这样的字符而不是重音符号 人物。此问题是由数据库排序规则、PHP 设置和存储方法不一致引起的。

映射损坏的字符以更正 UTF-8:

要解决此问题,一种有效的方法方法涉及 MySQL 数据库转储和重新导入过程。此方法允许将损坏的字符转换为其正确的 UTF-8 表示形式。

逐步修复:

1. Dump the MySQL database using the following command:

mysqldump -h DB_HOST -u DB_USER -p DB_PASSWORD --opt --quote-names \
--skip-set-charset --default-character-set=latin1 DB_NAME > DB_NAME-dump.sql

2. Import the dumped data back into a new database with the correct UTF-8 settings:

mysql -h DB_HOST -u DB_USER -p DB_PASSWORD \
--default-character-set=utf8 DB_NAME < DB_NAME-dump.sql

来源:

该解决方案基于所描述的技术于:
http://blog.hno3.org/2010/04/22/fixing-double-encoded-utf-8-data-in-mysql/

附加说明:

  • 确保数据库排序规则设置为utf8_general_ci。
  • 验证 PHP 是否使用正确的 UTF-8 标头。
  • 使用支持不带 BOM 的 UTF-8 的文本编辑器。
  • 虽然并非所有重音字符实例可能会被破坏,此方法应该可以解决大多数情况。

以上是如何修复 MySQL 数据库中损坏的 UTF-8 编码?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn