Javascript 将Unicode转义序列转换为符号,并转储到dom节点
浏览器:FF最新版本/Chrome最新版本Javascript 将Unicode转义序列转换为符号,并转储到dom节点,javascript,jquery,ajax,unicode,escaping,Javascript,Jquery,Ajax,Unicode,Escaping,浏览器:FF最新版本/Chrome最新版本 jQuery:1.x边缘 ajax请求生成此响应(作为纯文本、单行、有效的JSON(由Gson生成)发送,由jQuery作为纯文本处理) (此处格式化以便于阅读,但它以单行形式到达,缩小) 然后,我使用以下行将纯文本转换为对象文字: var currObj = $.parseJSON($.trim(thatStringUpThere)); 问题是,currObj.toSymbol现在字面上是“\u0024”,而不是“$”。 考虑到我不能将响应类型和
jQuery:1.x边缘 ajax请求生成此响应(作为纯文本、单行、有效的JSON(由Gson生成)发送,由jQuery作为纯文本处理) (此处格式化以便于阅读,但它以单行形式到达,缩小) 然后,我使用以下行将纯文本转换为对象文字:
var currObj = $.parseJSON($.trim(thatStringUpThere));
问题是,currObj.toSymbol现在字面上是“\u0024”,而不是“$”。
- 考虑到我不能将响应类型和句柄更改为json
- 考虑到我在jQuery的成功方法中只有那个普通字符串可以使用
(目前,jquery的.html()和.text()一直将“\u0024”转储到dom,而不是$symbol) 谢谢。简单解决方案:
unescape(JSON.parse($.trim(thatStringUpThere)));
var r = /\\u([\d\w]{4})/gi;
x = unescape (x.replace(r, function (match, grp) {
return String.fromCharCode(parseInt(grp, 16));
} ));
更优雅的解决方案:
unescape(JSON.parse($.trim(thatStringUpThere)));
var r = /\\u([\d\w]{4})/gi;
x = unescape (x.replace(r, function (match, grp) {
return String.fromCharCode(parseInt(grp, 16));
} ));
您正在使用哪个浏览器/jQuery?在jQuery 2.0.3/Chrome 36上,它对我来说就像预期的那样工作。@joews添加了详细信息。我在jQuery1.xEdge上。您使用了什么代码将“\\u0024”作为美元($)转储到dom?在带有现有
h1
标记的页面上:var currObj=$.parseJSON($.trim))$('h1')。文本(currObj.toSymbol)代码>