我有这段代码在pycharm ide上运行正常,但是当我在命令行中运行输出设置为文件或作为弹性地图缩减的一部分时,我会出错。尝试了一切,但仍然无法工作。
当我在命令行中以python script.py运行它时,它会给我输出。当我运行它像python script.py>文件,它给我一个错误
File "mapq4.py", line 48, in <module>
print ('%s,%s\t%s\t1\t%s\t%s' % (date, place, tag, tweetId, ind))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 19-28: ordinal not in range(128)
有人可以帮忙吗?我尝试了tag.encode(&#39; utf-8&#39;)并解码,但我仍然收到错误。
这是输出行,在这个输出行中,我确实错误地输出了韩语字符:
2014-03-21,Bangkok 소녀시대미스터미스터 1 447027481703219202 57
这是EMR中映射器功能的一部分,所以请记住这一点。
答案 0 :(得分:0)
Python通常可以检测IDE /控制台的编码,并且可以毫无问题地打印非ASCII字符,但是当您重定向到文件时,Python不知道编码应该在何时,默认为ascii
在Python 2.x和Python 3.x上的sys.getfilesystemencoding()
。
在重定向到文件之前设置环境变量PYTHONIOENCODING=utf8
,让Python知道要使用的编码。