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

Python3.9使用requests加载响应为JSON时报UnicodeEncodeError错误如何解决

报错根因

该UnicodeEncodeError并非json.loads加载阶段触发,而是后续print输出时,Windows默认控制台字符集不支持\u2082(下标2字符)的编码映射导致,即使sys.stdout.encoding显示为utf-8,也可能存在控制台实际继承系统默认charmap编码的情况。

解决方法
  • 方案1:显式指定requests响应编码,避免自动编码识别错误
    在requests.get执行后、读取rq.text前添加编码声明:
    rq = requests.get(url)
    # 新增编码指定语句
    rq.encoding = 'utf-8'
    rqJson = json.loads(rq.text)
    print(rqJson)
    
  • 方案2:修改Python输出编码规则
    运行脚本前先在当前终端执行命令,开启Python全局UTF-8编码模式:
    set PYTHONUTF8=1
    也可以直接修改打印逻辑,跳过系统字符集编码校验,直接将UTF-8编码的二进制流写入标准输出:
    import sys
    # 替换原有print语句
    sys.stdout.buffer.write(json.dumps(rqJson, ensure_ascii=False).encode('utf-8') + b'\n')
    
  • 方案3:修改Windows控制台编码
    运行脚本前先在终端执行命令,将控制台代码页切换为UTF-8:
    chcp 65001
    再执行Python脚本即可正常输出。

内容的提问来源于stack exchange,提问作者E. Aly

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:36:04