php - UTF8 mysql 数据在单个 MySQL 字段中出现不正确

标签 php mysql utf-8 character-encoding

我的数据库列之一中的数据无法从 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/

相关文章:

php - 查询字符串变量存在,但 $_GET 为空

mysql - 无法在mysql中创建表-错误1064

php - 即使其状态正在运行,也无法访问在 Docker 中配置的 wordpress

ruby-on-rails - ruby 将 "\x\x"格式编码为 utf8 字符串或以当前形式存储在 rails postgres db 中

php - 如何替换两个或多个连续的双引号?

php - curl 无法获取网页内容,为什么?

php - Zend 框架 2 : Database connection in view helper

php - 用php计算不同数据库的产品总价

utf-8 - 如何在只有部分编码错误的情况下转换文件?

qt - QString::toUtf8 在做什么?