码迷,mamicode.com
首页 > 其他好文 > 详细

str和unicode类

时间:2017-12-31 21:10:18      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:pos   str   import   为什么   nbsp   enc   文字   自动   span   

首先明确一点,我们编辑好一段文本,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类

标签:pos   str   import   为什么   nbsp   enc   文字   自动   span   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!