0

我有一个网络,所有编码都设置为 utf-8,但有时,我可以看到这个字符……现在,我遇到了问题,因为我想发出一个 ajax 请求,如果这个字符存在,则响应为空。

我真的不明白,因为例如,在这张图片中,你可以看到来自同一张桌子的文字,显示 ok 并且带有这个字符。我还以为是php文件的encode,改成utf-8、ansi等,不过没关系,有时候效果更差

可能是数据保存到数据库的浏览器?我不这么认为,但我不得不问

那么,我该如何处理呢?我什至尝试使用utf8_encode和解码,但更糟糕的是我真的不知道还能尝试什么希望你能帮助我谢谢
http://uhma.mx/uploads/images/character.png

4

2 回答 2

1

假设 mysqlUTF-8,您需要获取所有正在显示的数据:

  • 将所有列的编码设置为utf-8
  • 执行SET NAMES 'utf-8'SET CHARSET 'utf-8'在您打开数据库连接后立即执行

如果您需要从数据库默认值(通常)转换字符集,这里在 stack overflow 上latin1已经有了很好的答案。

另外发送Content-Type标头指定字符集:

header('Content-Type: text/html; charset=utf-8');

并添加<meta />带有字符集的标签:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
于 2013-09-26T20:13:18.100 回答
1

检查您的文件是否使用没有 BOM 的 UTF-8 编码。通过设置确保您的 PHP 使用 UTF-8:

header('Content-Type: text/html; charset=utf-8');

如果结果来自外部源,例如数据库,请检查那里的字符集/排序规则。这是一个开始。还要检查原始字符串是否包含正确的字符,或者它是否有乱码。

于 2013-09-26T20:13:21.420 回答