You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XHTML转JSON后如何替换Unicode转义字符为对应实际字符?

解决JSON中Unicode转义字符替换问题

Python 实现

推荐方案:利用内置JSON模块

Python的json模块会自动处理Unicode转义,无需手动遍历替换:

  • 解析带转义的JSON字符串时,json.loads()会直接将转义字符转换为实际字符:
import json

escaped_json_str = '{"content": "Hello\\u2019s World"}'
parsed_data = json.loads(escaped_json_str)
print(parsed_data["content"])  # 输出: Hello’s World
  • 生成JSON字符串时,设置ensure_ascii=False参数,可避免将非ASCII字符转为Unicode转义:
import json

data = {"content": "Hello’s World"}
unescaped_json_str = json.dumps(data, ensure_ascii=False)
print(unescaped_json_str)  # 输出: {"content": "Hello’s World"}

手动替换方案(不推荐)

如果必须手动处理,可通过正则匹配\uXXXX格式的转义符并替换:

import re

def replace_unicode_escapes(s):
    def convert(match):
        return chr(int(match.group(1), 16))
    return re.sub(r'\\u([0-9a-fA-F]{4})', convert, s)

escaped_str = "Hello\\u2019s World"
print(replace_unicode_escapes(escaped_str))  # 输出: Hello’s World

JavaScript 实现

解析时自动转换

使用JSON.parse()可直接将JSON字符串中的Unicode转义解析为实际字符:

const escapedJsonStr = '{"content": "Hello\\u2019s World"}';
const parsedData = JSON.parse(escapedJsonStr);
console.log(parsedData.content); // 输出: Hello’s World

序列化时避免转义

JSON.stringify()默认会转义非ASCII字符,可通过正则替换生成无转义的JSON字符串:

const data = { content: "Hello’s World" };
const unescapedJsonStr = JSON.stringify(data).replace(/\\u([0-9a-fA-F]{4})/g, (_, code) => {
    return String.fromCharCode(parseInt(code, 16));
});
console.log(unescapedJsonStr); // 输出: {"content": "Hello’s World"}

注意事项

  • 优先使用语言内置的JSON处理工具,手动正则替换容易遗漏边界情况(比如转义的反斜杠),导致错误。
  • 确保处理后的字符串使用UTF-8编码,避免出现乱码问题。

内容的提问来源于stack exchange,提问作者Tamoor Hamid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 20:40:31