我的数据库列之一中的数据无法从 UTF8 正确显示。
我最近使用以下方法将 MySQL 数据库转换为 UTF8:
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
使用我的 PHP 脚本显示数据时,一个字段似乎无法正确显示:
25英镑
当我期待时:
25英镑
同一页面上的其他字段正确显示 £25。我看到的唯一区别是它们是 VARCHAR,而问题字段是 MEDIUMTEXT。
为什么这一字段无法正确显示(我的脚本没有对其进行任何不同的处理)。
有什么帮助吗?
最佳答案
您不能只像这样转换排序规则而不会出现问题。有许多有问题的字符不会自动转换。
发生的情况是,您可能有一个非 UTF8 友好字符(如 MS Office 生成的字符),当您转换时,它被破坏了。如果只是几个字段,我会在编辑器中打开它们并删除有问题的数据。否则,您可能必须使用循环和类似 utf8_encode 的内容来“清理”数据库中的这些奇怪字符。
关于php - UTF8 mysql 数据在单个 MySQL 字段中出现不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29285627/