python - Unicode解码错误: 'ascii' codec can't decode byte 0xe0 in position 2: ordinal not in range(128)

标签 python mediawiki pywikibot

我为 Mediawiki 安装安装了 pywikibot-core(版本 2.0b3)。当我尝试运行包含 Unicode 文本的命令时出现错误。

我运行以下命令:

python pwb.py replace.py -regex -start:! "\[মুয়ায্যম হুসায়ন খান\]" "[মুয়ায্‌যম হুসায়ন খান]"  -summary:"fix: মুয়ায্যম > মুয়ায্‌যম"

这是我得到的错误:

Traceback (most recent call last):
  File "pwb.py", line 161, in <module>
    import pywikibot  # noqa
  File "/var/www/html/banglapedia_bn/core/pywikibot/__init__.py", line 32, in <module>
    from pywikibot import config2 as config
  File "/var/www/html/banglapedia_bn/core/pywikibot/config2.py", line 285, in <module>
    if arg.startswith("-verbose") or arg == "-v":
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 2: ordinal not in range(128)

最佳答案

使用python3而不是python


您看到该错误是因为模块 config2.py 使用 from __future__ import unicode_literals,使模块中的所有字符串成为 unicode 对象。但是,sys.args 是一个字节字符串,不受 __future__ 导入的影响。

因此,由于arg是一个字节字符串,而"-verbose""-v"是两个unicode字符串,arg 隐式提升为 unicode,但这失败了,因为隐式转换仅适用于 ASCII。

相反,在 Python 3 中,所有字符串默认都是 unicode,包括 sys.args

关于python - Unicode解码错误: 'ascii' codec can't decode byte 0xe0 in position 2: ordinal not in range(128),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29705389/

相关文章:

python - 日期格式的 LSTM 错误

python - 按照 python3 的顺序移动字典中的键

python - 使用Python从网页中提取图像链接

python - 将数据库内容与代码一起导入..

http - 如何使用 curl 发布文件的内容

python - 如何将 Airflow 与 Pywikibot 结合使用

python - Wikipedia api python 返回奇怪的结果

php - MediaWiki 1.20.0 中如何通过大小写用户名搜索用户贡献?

解析维基百科国家、地区、城市

python - Pywikibot 安装