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

如何解决charset_normalizer包中的“SyntaxError: Non-ASCII character '\xd1'”错误?

如何解决charset_normalizer包中的“SyntaxError: Non-ASCII character '\xd1'”错误?

嗨,我之前也碰到过一模一样的问题,结合你用Python3.9在Debian上的情况,还有已经设置了PYTHONUTF8=1的前提,给你几个实用的解决办法:

  • 优先升级charset_normalizer到最新版本
    大概率你安装的这个包版本比较旧,里面的__init__.py文件没按照PEP 263的要求添加编码声明,导致Python解析时出错。直接在终端运行升级命令就行:

    pip install --upgrade charset_normalizer
    

    要是你用的是系统级Python权限不够,就加--user参数:

    pip install --upgrade charset_normalizer --user
    
  • 手动给问题文件添加编码声明
    如果升级之后还是有问题,或者暂时没法升级,可以直接修改报错的那个文件。找到路径/usr/local/lib/python3.9/dist-packages/charset_normalizer/__init__.py,用文本编辑器打开它,在文件最开头(第一行或者第二行,必须在任何代码之前)加上编码声明:

    # -*- coding: utf-8 -*-
    

    这样Python就会用UTF-8编码来解析这个文件,自然就不会报非ASCII字符的错误了。不过要注意,以后如果升级这个包,手动修改的内容会被覆盖,所以这个方法更适合临时救急。

  • 确认PYTHONUTF8环境变量是否真正生效
    虽然你说已经设置了PYTHONUTF8=1,但有时候可能环境变量没正确加载。先在终端里输入echo $PYTHONUTF8,看看输出是不是1。如果不是,临时生效可以运行:

    export PYTHONUTF8=1
    

    之后再运行你的脚本python myscript.py试试。要是想让这个设置永久生效,就把上面的export命令加到~/.bashrc或者~/.profile文件里,然后运行source ~/.bashrc(或者对应的profile文件)让设置立刻生效。

备注:内容来源于stack exchange,提问作者SMartDev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 03:17:57