场景:用于编辑产品详细信息的 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,保存工作正常(如预期的那样),但之前保存的所有产品数据看起来都已损坏,并且有数千个产品行。
解决它的最简单的解决方案是什么?更改数据库字符集?运行编码函数来转换数据库中的条目?