我有一个 python 脚本,它从 twitter API 中抓取大量最近的推文并将它们转储到屏幕上。它运行良好,但当我尝试将输出定向到文件时,发生了一些奇怪的事情,并且打印语句导致异常:
> ./tweets.py > tweets.txt UnicodeEncodeError: 'ascii' codec can't encode character u'\u2018' in position 61: ordinal not in range(128)
我知道问题在于其中一条推文中的 UTF-8 字符无法很好地转换为 ASCII,但有什么简单的方法可以将输出转储到文件中?我是否应该在 python 脚本中修复此问题,还是有办法在命令行中强制执行此操作?
顺便说一句,该脚本是用 Python2 编写的。
无需修改脚本,您只需设置环境变量PYTHONIOENCODING=utf8,Python 就会在重定向到文件时采用该编码。