首页 > 其他 > 详细

str和unicode类

时间:2017-12-31 20:30:53      阅读:203      评论:0      收藏:0      [点我收藏+]

首先明确一点,我们编辑好一段文本,python并不知道我们的文本是以什么格式编码的。如果是纯英文字符还好说,如果这段代码中有汉字,则会报错了。

所以我们要显式的告诉python此文本的编码格式。

为了说明问题,首先将以下测试代码以utf-8格式编辑保存

 1 # -*- coding:utf-8 -*-  #告知python我这个文件里的文本是用utf-8编码的
 2 import time
 3 
 4 a = 
 5 print a#乱码,虽然python已经正确识别了a,但windows控制台使用gbk进行解码
 6 b = unicode(,utf-8).encode(gbk)#将严先解码为unicode格式,在编码为gbk格式
 7 print b#正确显示严
 8 c = a.decode(‘utf-8)#等效于c = unicode(‘严‘,‘utf-8‘),亦等效于c = u‘严‘ c是unicode格式的
 9 print type(a),type(b),type(c)#a,b都是str类,c是unicode类
10 print c
11 time.sleep(4)

 但是可能还有一个疑问,既然windows控制台使用gbk解码,为什么utf8的a是乱码,而unicode的b就不会是乱码呢?

因为Python在向控制台输出unicode对象的时候会自动根据输出环境的编码进行转换,这样就能正确解码了。但如果输出的不是unicode对象而是普通字符串,则不进行转换

str和unicode类

原文:https://www.cnblogs.com/saolv/p/8158159.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!