python3 向命令行输出utf8的问题

2014-02-03 22:21:31 +08:00
 yakczh
test.py
file='u8.html' # utf8编码的文件
text=open(file).read()


命令行运行 python3.exe test.py
提示

UnicodeDecodeError: 'gbk' codec can't decode bytes in position 2-3: illegal multibyte sequenc

修改为text=open(file, 'r', encoding='utf-8').read() 不报错了
print(text) 再输出一下
提示变成了
UnicodeEncodeError: 'gbk' codec can't encode character '\ufeff' in position 0: illegal multibyte sequence

怎么样在console输出utf8编码的文件的内容呢?
19908 次点击
所在节点    Python
23 条回复
yakczh
2014-02-04 14:49:25 +08:00
@est 同样的字符中在java下输出是正常的 字符串在内存中与python3一样也是unicode,一样生成字节码
yakczh
2014-02-04 14:49:50 +08:00
一样宣称跨平台
Vonex
2017-02-24 22:22:32 +08:00
Tools -> Build System 里 Python3.sublime-build
加个配置
"env": {"LANG": "en_US.UTF-8"}

```
{
"cmd": ["/usr/local/bin/python3","-u","$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8",
"env": {"LANG": "en_US.UTF-8"}

}
```

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

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

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

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

© 2021 V2EX