首页 > 后端开发 > php教程 > 如何在MySQL数据库中正确地将Latin1字符转换为UTF-8?

如何在MySQL数据库中正确地将Latin1字符转换为UTF-8?

Mary-Kate Olsen
发布: 2024-11-03 20:22:29
原创
515 人浏览过

How to Correctly Convert Latin1 Characters to UTF-8 in a MySQL Database?

将 UTF-8 表中的 Latin1 字符转换为 UTF-8

编码差异:

您发现了一个PHP 和 MySQL 编码设置之间不一致,导致 UTF-8 表中的变音字符存储不正确。虽然新插入现在是正确的,但旧行仍然包含损坏的字符。

纠正措施:

要纠正此问题,请利用 MySQL 的 Convert() 函数:

<code class="sql">convert(cast(convert(name using  latin1) as binary) using utf8)</code>
登录后复制

此函数将 Latin1 编码的数据转换为 UTF-8。双重转换可确保数据在转换过程中不会被截断。

用法示例:

在您的代码中,在更新查询中应用转换:

<code class="sql">mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string(convert(cast(convert(name using  latin1) as binary) using utf8)).'" WHERE `a1`="'.$row['a1'].'"');</code>
登录后复制

这将使用正确转换的 UTF-8 更新表中的名称列

注意:

根据编码转换期间的数据更改,您可能需要从查询中省略内部转换函数。测试这两种方案并采用能产生所需结果的方案。

以上是如何在MySQL数据库中正确地将Latin1字符转换为UTF-8?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板