0
这里是我的脚本的含量降低了:Python的非ASCII字符扼流圈时,输出到UNIX管道
print u"w\xa0p"
,它将打印字母“W”,接着不间断空格,然后“P”到TTY。然而,当这个脚本被传递给管道时,例如
python script.py | cat
(在管道右侧的确切指令并不重要,只要蟒蛇命令传递到UNIX管道),Python会用这种错误的抱怨:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 1: ordinal not in range(128)
有人可以解释为什么发生这个错误,以及如何缓解它?显然有一个不同的编解码器,我想我们可以使用unidecode包来缓解这个问题,但要以字符精度为代价;但我想知道如果输出管道正在使用,我们是否可以强制python打印utf-8字符。