gpt4 book ai didi

php - mysql_real_escape_string 编码错误,返回空字符串

转载 作者:行者123 更新时间:2023-11-29 13:48:27 25 4
gpt4 key购买 nike

场景:用于编辑产品详细信息的 html 文档编码为 ISO-8859-1,并将 POST 数据发送到 PHP 文件(也编码为 ISO-8859-1)。该 PHP 文件又具有清理输入的 mysql_real_escape_string 函数。数据库/mysql服务器字符集是UTF-8。问题是,当 POST 字符串中包含斯堪的纳维亚字母 (ä,ö,å) 时,mysql_real_escape_string 返回空字符串。

我尝试用 utf8_encode/decode 覆盖它,但它不起作用。

现在,如果我将 html&php 文件更改为使用 UTF-8,保存工作正常(如预期),但所有以前保存的产品数据看起来都已损坏,并且有数千个产品行。

解决这个问题最简单的解决方案是什么?更改数据库字符集?运行编码函数来转换数据库中的条目?

最佳答案

mysql_real_escape_string 考虑当前连接字符集。如果您在调用 mysql_real_escape_string 之前将连接显式设置为 UTF-8(在使用 mysql_real_escape_string 之前查询“SET NAMES 'utf8'”),则 ISO-8859-1 脚本应该可以工作

但可以肯定的是,我总是建议尽可能使用 unicode(并且仅使用 unicode);)

关于php - mysql_real_escape_string 编码错误,返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17087081/

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