ai didi

javascript - JS无法解析带有unicode字符的JSON

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:15:59 24 4
gpt4 key购买 nike

我有以下 JSON 字符串 {"name":""C\u008cUR Carmen"} 但是 \u008c 没有被解析。它显示的是空字符。

json = '{"name":"C\u008cUR Carmen"}';
json = JSON && JSON.parse(json) || $.parseJSON(json);

显示:CUR 卡门

期待:CŒUR Carmen

请帮忙。

* 注意 * :JSON 数据由 PHP 服务器返回,因此不应该有任何语法错误,因为我使用了 json_encode 并从 AJAX 获取响应。它适用于其他字符,例如 à, é 但只有这个奇怪的字符无法正确显示

编辑:已解决!这不是 JS 问题,而是 MySQL 返回的字符集问题。您可以在返回 SQL 数据之前使用 mysql_set_charset('utf8')。按预期显示 \u0152

最佳答案

无需转义 RFC 4627 中规定的 unicode 字符

2.5. Strings

The representation of strings is similar to conventions used in the C family of programming languages. A string begins and ends with quotation marks. All Unicode characters may be placed within the quotation marks except for the characters that must be escaped: quotation mark, reverse solidus, and the control characters (U+0000 through U+001F).

您可以直接使用您的 unicode 字符串:

json = '{"name":"CŒUR Carmen"}';
json = JSON && JSON.parse(json) || $.parseJSON(json);

我认为在您的服务器端实现中存在转码错误,您在使用 json_encode 之前将输出更改为 ASCII。 JSON 要求所有数据都以 Unicode 编码。

编辑

this fiddle有一个示例如何在 javascript 中恢复转义的 unicode。

关于javascript - JS无法解析带有unicode字符的JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31008002/

24 4 0
文章推荐: java - 带有按钮和静态字符串数组的 ListView
文章推荐: php - 如何确保您的 PHP 脚本仅由您授权的应用程序调用?
文章推荐: java - 如何将两个字符串与随机位置android结合起来
文章推荐: ios - 如何创建更干净的 UIViewController?
塔克拉玛干
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com