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

Python CSV转JSON时韩文显示Unicode编码的解决方法问询

解决CSV转JSON时韩文显示Unicode转义的正确思路

1. 先搞定CSV读取的编码正确性

CSV文件的原始编码是核心前提,读错编码后续处理全无效:

  • 读取时显式指定韩文常用编码(utf-8或euc-kr):
    import csv
    with open('korean_data.csv', 'r', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        data = list(reader)
    
  • 不确定编码时用chardet检测:
    import chardet
    with open('korean_data.csv', 'rb') as f:
        detect_result = chardet.detect(f.read())
    print(detect_result['encoding'])  # 将检测结果替换到读取代码的encoding参数中
    

2. 严格规范JSON序列化与写入流程

ensure_ascii=False必须配合UTF-8编码写入,二者缺一不可:

  • 直接序列化写入的正确写法:
    import json
    with open('output.json', 'w', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=4)
    
  • 若先生成JSON字符串再写入,也要保证写入时用UTF-8:
    json_content = json.dumps(data, ensure_ascii=False)
    with open('output.json', 'w', encoding='utf-8') as f:
        f.write(json_content)
    

3. 排查中间数据处理的编码污染

  • Python 3环境下无需使用byteify这类兼容Python 2的函数,默认字符串为Unicode类型,额外转字节会触发JSON转义;
  • 避免对已为Unicode的字符串执行encode操作,否则会变成字节串,导致序列化时出现转义字符。

4. 验证输出文件的查看方式

  • 用支持UTF-8的编辑器(VS Code、Notepad++)打开输出的JSON文件,确保编辑器编码设置为UTF-8;
  • 不要用Windows默认记事本(默认编码可能为GBK),否则会显示乱码,误判为转义问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:18:09