在Windows上安装了一些issuesChrome Compact语言检测库之后,我从this easy_install.安装了CLD
我现在可以使用CLD了,但是遇到了一些编码问题。在
将Tweets放入python脚本中,去掉标签和链接后,将它们传递给CLD以检测语言。
以下是我的代码的简化版本:
s = "I am a tweet from Twitter"
clean_s = s.encode('utf-8')
lan = cld.detect(clean_s, pickSummaryLanguage=True, removeWeakMatches=True)
5次中有4次,这是按预期工作的(得到关于它是什么语言的响应)。在
但是,我总是出现这样的错误:
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2019' in position 15: character maps to undefined
我认为:
"You must provide CLD clean (interchange-valid) UTF-8, so any encoding issues must be sorted out before-hand."
但是,我以为我的声明中包含了这个,可以编码成UTF8?在
我假设我需要确保向CLD传递一个字符串,该字符串保留阿拉伯语、亚洲等语言的字体
这是我的第一个python项目,所以这可能是一个新手的错误。有谁能指出我的错误和如何改正?在
如果我需要收集更多信息,请在评论中告诉我,我会编辑我的Q来提供更多信息。在
编辑 如果有帮助,here is my rookie code(减少到复制问题)。 我运行的是python2.72bit。在
运行这段代码,一段时间后,我get this error。 如果我没有正确执行错误报告,请告诉我。在
^{pr2}$
看来你在打印声明上失败了,对吧?这意味着Python无法将unicode字符串编码成它认为控制台的stdout编码方式(“printsys.getdefaultencoding()"). 在
如果python对终端的期望是错误的,可以设置env var(“export PYTHONIOENCODING=UTF-8”),它会将打印的字符串编码为UTF-8。或者,在打印之前,您可以对终端期望的任何字符集进行编码(很可能必须忽略/替换错误,以避免像您所点击的那样的异常)。。。在
相关问题 更多 >
编程相关推荐