python 中文乱码

无法正常打印中文,不一定是程序编写过程中编码的问题,还有可能是执行环境编码的问题,尤其在Windows系统中。

问题描述

如图,在cmd中执行python脚本,无法正常打印中文。
这里写图片描述

问题分析

首先,打印内容并非乱码,而是未能成功打印的GBK字符。GBK字符每个占用2字节,可用2个16进制数表示。借助unicode()函数,我们可将其转化为Unicode字符,如下图。
这里写图片描述
其次,借助chardet编码检测模块,我们发现该list中中文部分编码为“windows-1252”,英文部分编码为“ascii”。
这里写图片描述
最后,通过查找资料,我发现cmd默认编码为GBK,借助chcp命名可以改变编码。

chcp 65001

换成UTF-8代码页,在命令行标题栏上点击右键,选择”属性”->”字体”,将字体修改为True Type字体”Lucida Console”,然后点击确定将属性应用到当前窗口。

chcp 936

换回默认的GBK。

chcp 437

美国英语。

问题结论

真爱生命,远离微软

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值