python编码详解_Python之Win字符编码详解

Win下的dos窗口输出中文

Python2.7默认字符编码是ascii格式,即使指定字符编码为UTF-8也未必能够输出中文,测试如下:#_*_coding:utf-8_*_# 定义一个变量内容为中文,字符集为UTF-8temp = "中文"

# 输出变量temp的内容print(temp)

用win下的dos窗口执行这个脚本,看看输出出来的是否为中文C:\Users\anshe>python F:\Python_code\sublime\Day02\print.py涓枃        #输出出来的是乱码

这是为什么呢?其实是因为dos窗口的字符编码是GBK的(如下图),规定输出的字符集必须是GBK的,所以输出出来的中文即为乱码。

注意我是用的是Python2.7.11C:\Users\anshe>python -VPython 2.7.11

使用Pycharm或者sublime的Python IDE输出中文流程

流程中文说明:Py Scripts头部指定编码格式为UTF-8—>IDE把默认的Ascii格式编码成UTF-8—->IDE终端输出中文用sublime IDE输出# _*_ coding:utf-8 _*_# 定义一个变量内容为中文,字符集为UTF-8temp = "中文"

# 输出变量temp的内容print(temp)

输出的内容:

既然这样,python的编码能够把ascii编码还换成UTF-8那么肯定也就可以转换成GBK编码,流程如下:

代码如下:# _*_ coding:utf-8 _*_# 定义一个变量内容为中文,字符集为UTF-8temp = "中文"

# 解码,需要指定原来是什么编码temp_unicode = temp.decode("utf-8")

# 编码,需要指定要转换成什么编码temp_gbk = temp_unicode.encode("gbk")

# 输出转换成的gbk编码print(temp_gbk)

Dos窗口执行测试:C:\Users\anshe>python F:\Python_code\sublime\Day02\print.py中文

另外一种方法:

代码:# _*_ coding:utf-8 _*_# 定义一个变量内容为中文,字符集为UTF-8temp = "中文"

# 解码,需要指定原来是什么编码temp_unicode = temp.decode("utf-8")

# 输出转换成的gbk编码print(temp_unicode)# Windows终端需要GBK,DOS自动转换成GBKC:\Users\anshe>python F:\Python_code\sublime\Day02\print.py中文

大概流程也就像下面的图一样

python3移除了unicode字符集的类型,默认使用UTF-8,还有一种也可以在dos终端输出中文的方法,代码如下:# _*_ coding:utf-8 _*_print(u"中文")

DOs窗口输出的就是中文了,虽然我也不知道是什么意思C:\Users\anshe>python f:\Python_code\sublime\Day02\print.py中文

本文出自 “一盏烛光” 博客,谢绝转载!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值