【问题标题】:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1286: ordinal not in range(128)UnicodeDecodeError:“ascii”编解码器无法解码位置 1286 中的字节 0xc3:序数不在范围内(128)
【发布时间】:2016-06-30 22:17:22
【问题描述】:
Traceback (most recent call last):
File "AutomationTool.py", line 2, in <module>
import MultiProcessController, RedisUtil, ADUtils, json, time
File "/var/www/html/ARB-Automation/MultiProcessController.py", line 2, in <module>
import AdTitleExtraction, ADUtils, AdwordsClient, RedisUtil, FinalURLRetrieval, ClusterStrategy, \
File "/var/www/html/ARB-Automation/AdTitleExtraction.py", line 2, in <module>
import Config, ADUtils, re, wordsegment as WS, queue, threading, time
File "/var/www/html/ARB-Automation/ADUtils.py", line 3, in <module>
import pymssql, pymysql, wordsegment as WS, gc
File "/usr/local/lib/python3.4/site-packages/wordsegment.py", line 49, in <module>
bigram_counts = parse_file(join(basepath, 'bigrams.txt'))
File "/usr/local/lib/python3.4/site-packages/wordsegment.py", line 45, in parse_file
return dict((word, float(number)) for word, number in lines)
File "/usr/local/lib/python3.4/site-packages/wordsegment.py", line 45, in <genexpr>
return dict((word, float(number)) for word, number in lines)
File "/usr/local/lib/python3.4/site-packages/wordsegment.py", line 44, in <genexpr>
lines = (line.split('\t') for line in fptr)
File "/usr/local/lib/python3.4/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]


UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1286: ordinal not in range(128)

我正在尝试在我的 python 代码中使用 wordsegment,我使用 python3.4.4,它曾经在我的本地机器上工作。我部署在生产服务器上,我得到了这个错误,我不知道为什么会这样。 有人可以帮帮我吗?

【问题讨论】:

  • 差异可能不是环境(服务器/本地机器)而是数据?我的意思是,在您的服务器上用作输入的数据可能与您在机器上用于测试的数据不同吗?能不能加个打印/日志来获取错误数据,至少排除环境,看看能不能在本地复现?
  • 您的语言环境设置为C,绝对是。
  • @Jérôme 嗨,我也检查了数据,它完全一样。你说的也是我的第一个怀疑。

标签: python python-3.4 python-unicode


【解决方案1】:

如果一切都失败了,Python 3 会尝试从语言环境设置中推断出正确的输入/输出字符集。大概您的生产服务器上的语言环境不是 UTF-8 语言环境,这就是 Python 出错的原因。

您可以通过使用PYTHONIOENCODING 环境变量来强制进行某种编码;例如

PYTHONIOENCODING=UTF-8 python myprogram.py

或通过设置适当的 UTF-8 语言环境,例如 C.UTF-8 或 en_US.UTF-8。

【讨论】:

  • 谢谢。这么久以来我一直在努力解决这个问题!还有刚刚发生的问题,我在哪里可以阅读更多关于它的信息以便我更好地理解这一点?
猜你喜欢
  • 2014-08-19
  • 2015-05-05
  • 2016-11-12
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
  • 2019-05-10
  • 1970-01-01
相关资源
最近更新 更多