gpt4 book ai didi

php - MySQL转换字符集问题

转载 作者:行者123 更新时间:2023-11-29 01:30:03 24 4
gpt4 key购买 nike

我有一个在 PHP 5 上运行并使用 mysqli 扩展访问和存储 MySQL 数据库的应用程序。该数据库包含许多编码为 UTF-8 的表(排序规则 utf8_swedish_ci)。

不幸的是,似乎 mysqli 连接被配置为使用 ISO-8859-1 对所有内容进行编码,这意味着我有包含 latin1UTF-8 表数据。我现在正在尝试通过将所有内容转换为 UTF-8(应该是这样!)来修复此问题

有没有内置的方法来处理这个问题?如果没有,您会建议我如何处理这个问题?


编辑:使用 PHPMyAdmin 浏览所有数据时的数据样例:

handelë(应该是 handelë)

âšskal(应该是√skal)

另外,只要我使用输出编码UTF-8,但保持mysqli连接字符集为latin1,数据在HTML文档中输出正确。这一切都相当困惑。

非常感谢您的帮助!

最佳答案

好的!所以这一定是发生了什么:

用户界面 (UTF-8) → Controller (UTF-8) → 模型 (ISO-8859-1) → 数据库 (UTF-8,但它接收 ISO-8859-1)

因此这些字段被配置为使用 UTF-8 编码,但它们接收的是 ISO-8859-1 编码数据。我想将错误编码的数据转换为 UTF-8。

因为数据实际上是 ISO-8559-1 编码的,所以我用下面的 MySQL 小“hack”解决了我的问题:

UPDATE `table` SET `column` = convert(cast(convert(`column` using  latin1) as binary) using utf8)

礼貌 ABS在 StackOverflow 上。

谢谢你们花时间研究我的问题,伙计们! :)

关于php - MySQL转换字符集问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18042547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com