PyCharm 编码问题?

2015-09-19 17:34:39 +08:00
 RqPS6rhmP3Nyn3Tm

默认使用 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 打开没有问题。
如何解决呢?

4024 次点击
所在节点    Python
11 条回复
shoaly
2015-09-19 18:14:09 +08:00
volumnList.encode ('utf-8')

volumnList.encode ('gbk')
都试试看吧
wuhuaji
2015-09-19 18:32:10 +08:00
首先你要确认是不是文件是不是真的是 utf8 编码,在右下角可以看到,这个坑我就碰到了。

如果不是在设置里改编码。
RqPS6rhmP3Nyn3Tm
2015-09-19 19:40:30 +08:00
@shoaly 感谢回复,但是方法在我这里尝试后发现没有作用
RqPS6rhmP3Nyn3Tm
2015-09-19 19:41:02 +08:00
@wuhuaji 文件的确是 UTF-8 编码,右下角也是这么显示的
zhaozhiming003
2015-09-19 20:12:25 +08:00
可以用 chardet 看下文件的编码格式是什么,不一定就是 utf-8 , https://pypi.python.org/pypi/chardet
RqPS6rhmP3Nyn3Tm
2015-09-19 21:19:54 +08:00
@zhaozhiming003 感谢!发现字符编码是 ASCII
RqPS6rhmP3Nyn3Tm
2015-09-19 21:23:23 +08:00
@zhaozhiming003 不对,似乎不是这个原因。显示是 ASCII 似乎只是因为源代码只包含了 ASCII 范围内的字符……
wsy2220
2015-09-19 21:26:14 +08:00
把这行删掉手动敲一遍试试
jamesxu
2015-09-19 23:20:09 +08:00
你确定'ls /Volumes'这一句没问题?貌似是这一行第 25 个字符有问题
RqPS6rhmP3Nyn3Tm
2015-09-20 00:19:54 +08:00
@jamesxu volumeList = os.popen ('ls /Volumes').readlines ()
应该没错吧?
CBBing
2015-09-20 18:19:02 +08:00
在文件前几行加:
# coding: utf-8

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/222020

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX