相关疑难解决方法(0)

在Python中管道stdout时设置正确的编码

管道Python程序的输出时,Python解释器会对编码感到困惑,并将其设置为None.这意味着这样的程序:

# -*- coding: utf-8 -*-
print u"åäö"
Run Code Online (Sandbox Code Playgroud)

正常运行时会正常工作,但失败时:

UnicodeEncodeError:'ascii'编解码器无法对位置0中的字符u'\ xa0'进行编码:序数不在范围内(128)

当在管道序列中使用时.

在配管时使这项工作的最佳方法是什么?我可以告诉它使用shell/filesystem /无论使用什么编码吗?

到目前为止我看到的建议是直接修改你的site.py,或者使用这个hack对defaultencoding进行硬编码:

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
print u"åäö"
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法使管道工作?

python terminal encoding stdout python-2.x

327
推荐指数
7
解决办法
19万
查看次数

带有csvwriter的UnicodeEncodeError

我还有一个错误要修复.

row = OpenThisLink + titleTag + JD
        try:
             csvwriter.writerow([row])
        except (UnicodeEncodeError, UnicodeDecodeError):
             pass
Run Code Online (Sandbox Code Playgroud)

这给出了错误(对于这个字符:"ń")

row = OpenThisLink + str(titleTag) + JD
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 51: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我尝试使用此处的方法来解决此问题.但,

>>> title = "hello Gilici?ski"
Unsupported characters in input
u = unicode(title, "latin1")

Traceback (most recent call last):
   File "<pyshell#56>", line 1, in <module>
     u = unicode(title, "latin1")
NameError: name 'title' is not defined
>>> title = "?" Unsupported …
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
5480
查看次数

标签 统计

python ×2

encoding ×1

python-2.x ×1

stdout ×1

terminal ×1