gpt4 book ai didi

javascript - 如何使 JSON.stringify 在没有 "post-processing"的情况下以 ascii 安全转义形式 (\uXXXX) 编码非 ascii 字符?

转载 作者:数据小太阳 更新时间:2023-10-29 04:24:01 25 4
gpt4 key购买 nike

我必须将像 ü 这样的字符作为 unicode 字符但作为 ASCII 安全字符串发送到服务器。所以它必须是 \u00fc(6 个字符)而不是字符本身。但是在 JSON.stringify 之后,无论我用它做了什么,它总是得到 ü

如果我使用像 \\u00fc 这样的 2 个反斜杠,那么我也会在 JSON 字符串中得到 2 个反斜杠,这也不好。

重要约束:我无法在 JSON.stringify 之后修改字符串,它是没有解决方法的框架的一部分,我们不想 fork 整个包.

这能做到吗?如果是,怎么办?

最佳答案

如果出于某种原因,您希望您的 JSON 是 ASCII 安全的,请在 json 编码后替换非 ASCII 字符:

var obj = {"key":"füßchen", "some": [1,2,3]}

var json = JSON.stringify(obj)
json = json.replace(/[\u007F-\uFFFF]/g, function(chr) {
return "\\u" + ("0000" + chr.charCodeAt(0).toString(16)).substr(-4)
})

document.write(json);
document.write("<br>");
document.write(JSON.parse(json));

关于javascript - 如何使 JSON.stringify 在没有 "post-processing"的情况下以 ascii 安全转义形式 (\uXXXX) 编码非 ascii 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31649362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com