
默认使用 UTF-8 ,在 PyCharm 中调试会出现这样的错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 25: ordinal not in range (128 )
看了一下,导致问题的是这行:
volumnList=os.popen ('ls /Volumes').readlines ()
但是在 Terminal 中直接用 Python 3 打开没有问题。
如何解决呢?
1 shoaly 2015-09-19 18:14:09 +08:00 volumnList.encode ('utf-8') volumnList.encode ('gbk') 都试试看吧 |
2 wuhuaji 2015-09-19 18:32:10 +08:00 首先你要确认是不是文件是不是真的是 utf8 编码,在右下角可以看到,这个坑我就碰到了。 如果不是在设置里改编码。 |
3 RqPS6rhmP3Nyn3Tm OP @shoaly 感谢回复,但是方法在我这里尝试后发现没有作用 |
4 RqPS6rhmP3Nyn3Tm OP @wuhuaji 文件的确是 UTF-8 编码,右下角也是这么显示的 |
5 zhaozhiming003 2015-09-19 20:12:25 +08:00 可以用 chardet 看下文件的编码格式是什么,不一定就是 utf-8 , https://pypi.python.org/pypi/chardet |
6 RqPS6rhmP3Nyn3Tm OP @zhaozhiming003 感谢!发现字符编码是 ASCII |
7 RqPS6rhmP3Nyn3Tm OP @zhaozhiming003 不对,似乎不是这个原因。显示是 ASCII 似乎只是因为源代码只包含了 ASCII 范围内的字符…… |
8 wsy2220 2015-09-19 21:26:14 +08:00 把这行删掉手动敲一遍试试 |
9 jamesxu 2015-09-19 23:20:09 +08:00 via iPhone 你确定'ls /Volumes'这一句没问题?貌似是这一行第 25 个字符有问题 |
10 RqPS6rhmP3Nyn3Tm OP @jamesxu volumeList = os.popen ('ls /Volumes').readlines () 应该没错吧? |
11 CBBing 2015-09-20 18:19:02 +08:00 在文件前几行加: # coding: utf-8 |