我已经搜索了大约 3 个小时,我知道有很多像这样的问题已经被问过,但在尝试输出重音字符时,我还没有找到任何适合我的问题的解决方案我的数据库上的 SELECT 查询的结果。
$itemsList = array();
while($row = mysql_fetch_assoc($res)){
$itemsList[Items][] = ($row);
}
echo json_encode($itemsList);
这将输出:
{"Items": [
{"user_name":"misterP",
"comment":"\u00c3\u00a9t\u00c3\u00a9",
"image_name":"403885300736874.jpg"}]}
但我需要输出重音,如下所示:
{"Items": [
{"user_name":"misterP",
"comment":"été",
"image_name":"403885300736874.jpg"}]}
- 我的数据库和表具有类间 utf8_general_ci
- 我的数据库中插入的数据是utf8_encode
- 我的 php 脚本采用 Unicode (UTF-8)
- 我在数据库上的 SELECT 之前做了“ mysql_set_charset( 'utf8' ); ”
- 如果这可以帮助某人:在 y 数据库中,单词“été”是:“été”
所以我现在真的不知道该怎么办,我真的被口音困住了,我无法让它工作。提前致谢 !
这并不重要。当json被解码后,它们又变成了字符。
如果你使用 php 5.4 >= 则可以通过JSON_UNESCAPED_UNICODE
to json_encode
:
json_encode( $data, JSON_UNESCAPED_UNICODE )
但同样,unicode 转义也同样有效,并使数据 ascii 安全。
Edit:
看起来你的数据已经被搞砸了,甚至在之前json_encode
。您似乎已将其“双重编码”为 utf-8 。
我的数据库中插入的数据是utf8_encode
你在使用类似的东西吗utf8_encode
?当您插入数据库时,您不需要在代码中执行任何操作。如果您使用以下方式将数据插入数据库utf8_encode
,这就解释了双重编码。您所需要的只是数据为 utf-8 并且具有mysql_set_charset( 'utf8' )
插入之前。
有趣的是,如果你的 json 具有未转义的 unicode,则 json无法作为 JavaScript 执行即使您添加括号(如果 json 包含)U+2028 or U+2029.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)