> 技术文档 > JSON文件中显示为 \\uXXXX 字符 的解决办法_错误-375003:json字符串无效。json字符串必须使用utf-8编码,且必须遵循json语法

JSON文件中显示为 \\uXXXX 字符 的解决办法_错误-375003:json字符串无效。json字符串必须使用utf-8编码,且必须遵循json语法

在JSON文件中,有些字段值是直接使用汉字,而有些字段值则是以 \\u 开头的字符,这是因为:

✅ 正确显示的汉字:

  • 这些是正常编码的中文字符,文件保存格式为 UTF-8,浏览器或编辑器能正确识别并显示为中文。

⚠️ 显示为 \\uXXXX 的字符:

  • 这些是 Unicode 编码字符\\u 后面跟着的是字符的 Unicode 十六进制表示。
  • 这是 JSON 文件中的一种标准字符表示方式,特别是在以下情况下会出现:
    • 文件被错误地保存或解析为非 UTF-8 格式
    • 使用某些不支持中文编码的编辑器或工具打开时
    • 数据在序列化时未正确设置 ensure_ascii=False(例如 Python 的 json.dumps 默认会将中文转为 \\u 编码)

解决方法:

  1. 用支持 UTF-8 的编辑器打开文件(如 VS Code、Notepad++)并确保编码为 UTF-8。
  2. 如果使用 Python 操作 JSON 文件,确保使用 ensure_ascii=False
import json with open(\'config.json\', \'w\', encoding=\'utf-8\') as f: json.dump(config, f, ensure_ascii=False, indent=4)
  1. 避免使用不支持中文的工具或解析器

总结:

  • \\uXXXX 是 Unicode 编码的中文字符。
  • 出现这种情况通常是由于编码设置不正确或工具不支持中文解析。
  • 使用正确的工具和编码设置(UTF-8),就能正常显示为汉字。

在Fay数字人框架中,要确保config.json文件中,字段显示为汉字需要在config_util.py文件中进行如下修改:

 # 保存到文件with codecs.open(config_json_path, mode=\'w\', encoding=\'utf-8\',ensure_ascii=False) as file: file.write(json.dumps(config_data, sort_keys=True, indent=4, separators=(\',\', \': \')))