2017-03-16 53 views
1

在Python 2.7,我有以下的印刷品和我通过IDLE调试:的Python:SYS防止元素

print 'Here' 
import sys 
reload(sys) 
sys.setdefaultencoding('cp1252') 
print 'There' 

我所得到的回报是

这里

所以在设置了默认编码后,它不会打印所需的输出。 这可能是由于IDLE编码的冲突吗?

+0

你为什么要做一个'reload(sys)'? – Ryan

+0

请问您为什么需要这样做? –

+0

我使用重新加载,因为我在这里阅读:http://stackoverflow.com/questions/2276200/changing-default-encoding-of-python 我想改变我的编码为cp1252,但如果我按照过程中的链接上面它不打印任何其他 – Thegamer23

回答

2

因为无法从sys中找到对setdefaultencoding的引用。这就是为什么它不打印“有”

setdefaultencoding已被废弃,一个不应该使用它!

看看下面的链接。 Why should we NOT use sys.setdefaultencoding(“utf-8”) in a py script?

+0

[This](http://stackoverflow.com/questions/3828723/why-should-we-not-use-sys-setdefaultencodingutf-8-in-a-py-script)是也有一些不错的建议 –

+0

好吧,因为我在这里找到它:http://stackoverflow.com/questions/2276200/changing-default-encoding-of-python 有没有一种方法来改变从Python本身的编码,使得如果我将我的代码转发给朋友,他可以使用更改后的字符集运行它(cp1252) – Thegamer23

+0

这是使用重新加载(sys)更改默认编码的技巧,但绝不建议按照文档! – abhinav