python终端输入汉字_python使用subprocess获取命令行输入后中文转码问题

python使用subprocess模块可以方便的运行系统命令,并获取输入,但是当输出的内容中存在中文时返回的数据就是进行过编码后的,无法正常显示,因此要对其进行一下转码,过程如下:

首先,应该知道命令行使用哪种编码显示输出结果,在命令行中运行 chcp 命令来获取活动页代码,如:"活动页代码:936"

MS-DOS为以下国家和语言提供字符集:

代码页描述

1258 越南语

1257 波罗的语

1256 阿拉伯语

1255 希伯来语

1254 土耳其语

1253 希腊语

1252 拉丁 1 字符 (ANSI)

1251 西里尔语

1250 中欧语言

950 繁体中文

949 朝鲜语

936 简体中文(默认) GBK

932 日语

874 泰国语

850 多语种 (MS-DOS Latin1)

437 MS-DOS 美国英语

65001 UTF-8

然后在PY内对获取到的结果进行相应转码即可

例如我的活动代码页为936,即GBK编码

那么应该就应该这样写:

String = str(Output.stdout.readline(),encoding='gbk')

Output为subprocess.Popen命令返回的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值