求助|python 调用 shell 后, shell 输出的编码问题

2015-07-30 05:32:57 +08:00
 soratadori
python3.4

使用os.popen或者subprocess.getstatusoutput来调用shell的命令,然后接受shell的输出再显示出来。例如:
print( os.popen('type 1.txt').read() ) #1.txt为utf-8编码
subprocess.getstatusoutput('type 1.txt') #这句和上面那句功能一样

如果输出的内容是utf-8的话,python会出现“UnicodeDecodeError: 'gbk' codec can't decode……”的问题。然而这两个函数也没什么decode、encode给你用...怎么办?网上搜了一圈也没解决,大多数人遇到的是输入问题
2776 次点击
所在节点    Python
2 条回复
iam36
2015-07-30 08:37:04 +08:00
感觉应该是 Xnix环境的编码设置可以解决你的问题 。
oscarzhao
2015-07-30 20:54:12 +08:00
shell的编码不是utf8吧,read()后面为什么不能加encode decode呢

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

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

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

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

© 2021 V2EX