我有以下 JavaScript 代码:
http://www.nomorepasting.com/getpaste.php?pasteid=22561
效果很好(makewindows 函数已更改为显示它是一个 php 变量),但是 html 包含 unicode 字符,并且只会分配第一个 unicode 字符之前的字符。如果我制作一个小测试文件并直接回显article_desc,则所有html都会输出,尽管显示的是问号而不是正确的符号。然而 json_encode 似乎缩短了 html,导致错误。
编辑:这里是直接从 mysql 数据库转储的我试图显示的 html:
http://www.yousendit.com/download/TTZueEVYQzMrV3hMWEE9PQ
源代码中显示为 utf-8。通过回显article_desc生成的实际页面代码在这里:
http://www.nomorepasting.com/getpaste.php?pasteid=22566
这绝对是同一个记录,所以我不确定为什么它看起来很不同。
编辑:这是通过调用修复的:mysql_query('SET NAMES utf8');
最佳答案
json_encode
期望字符串是 UTF-8 编码的字节流。您必须在内部使用 utf-8 编码的字符串(无论如何,这是当前处理 PHP 中的 unicode 字符的唯一方法),或者使用 a different library用于生成 json。
关于php - json_encode 和 mysql unicode 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/349614/