2017-03-24 62 views
0

如何更改python 3.5中的首选编码?我试图chcp 65001-*- coding: utf-8 -*-sys.setdefaultencoding,但仍获得的编码错误更改Python中的偏好编码

File "D:\Program Files\Anaconda2\envs\py3\lib\encodings\cp1252.py", line 23, in decode 
return codecs.charmap_decode(input,self.errors,decoding_table)[0] 

的UnicodeDecodeError:“字符映射”编解码器不能在75位解码字节的0x90:字符映射到

它继续调用cp1252.py而不是cp65001.py

+0

你可以显示你的Python代码导致这个错误? –

+0

@NilsWerner它是一个很长的代码,因为它是我们公司脚本的一部分。该功能是读取包含中文字符的文件。 –

+0

然后尝试将其重构为[最小工作示例](https://en.wikipedia.org/wiki/Minimal_Working_Example)。 –

回答

0
import sys 
#We don't have access to setdefaultencoding() right now 
reload(sys) #now we can access this function 
sys.setdefaultencoding('UTF8') 

这绝对是一个黑客,实现这一目标是有你的环境的默认设置为UTF8,然后只需使用的更具体的和永久的方式编码和解码功能。

+0

你能提供一些信息,说明为什么“这应该起作用”?改进你的答案! :)据我所知, – Ferrrmolina

+0

有两件事: 1. setdefaultencoding不同于preferencoding。 2. py3.5 +中不再支持setdefaultencoding, –