php - 将 latin1 编码的文本插入 utf8 表(忘记使用 mysql_set_charset)

标签 php mysql utf-8 character-encoding latin1

我有一个 PHP 网络应用程序,其中包含采用 utf8 文本的 MySQL 表。我最近将数据从 latin1 转换为 utf8 以及相应的表和列。然而,我确实忘记了使用 mysql_set_charset,而我假设最新的传入数据来自 MySQL 连接作为 latin1。我不知道当 latin1 进入 utf8 列时会发生什么,但它会导致逗号、引号、& 符号等项目出现一些奇怪的显示问题。

现在 mysql_set_charset 已经就位,它正在提取带有时髦字符的数据。既然我有使用正确字符集的数据库连接资源,有什么方法可以将 latin1-utf8 soup 转换为纯 utf8?

最佳答案

根据您的评论找到了修复方法。这是似乎解决了我的问题的 SQL 行。

UPDATE table SET col = CONVERT(CONVERT(CONVERT(col USING latin1) USING binary) using utf8);

即使该列是 UTF8,它也会强制它以 latin1 格式提取数据,转换为二进制,转换为 utf8,然后重新插入。

关于php - 将 latin1 编码的文本插入 utf8 表(忘记使用 mysql_set_charset),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3175929/

相关文章:

php - PHP 中的链接引用

php - Nginx:拒绝访问其中的目录和文件

mysql - 如何登录mysql并从linux终端查询数据库

python - Python 3 中 for 循环的数据类型和文档

php - MySQL错误用户已超出 'max_questions'资源

mysql - 创建一个 View ,其中 t1 中的记录不存在于 t2 中?确认并集/左连接/内连接?

mysql - 在perl中转义单引号

utf-8 - VBScript:打印 UTF-8 中的所有字符

python - 解码编码 UTF-8 不会产生原始的 unicode

php - 从 print json_encode 添加逗号