<!----><!---->
<!---->
Python2.x
中,没有字节的概念(Python3中出新了bytes),只有两种字符串:表示
str
和
unicode
。使用引号定义字符串时,默认定义成一个str字符串。加前缀u表示这是一个Unicode字符串。
可以把
str
的单位看做一个字节,把
unicode
的单位看作一个字符。在交互命令界面下
>>> t = '你好'
>>> t
'\xc4\xe3\xba\xc3'
>>> t[0]
'\xc4'
>>> print t[0]
>>> t = u'你好'
>>> t
u'\u4f60\u597d'
>>> t[0]
u'\u4f60'
>>> print t[0]
你
>>>
所以处理中文时最好使用Unicode字符串,可以对每个汉字进行处理。
还要注意,上面把'你好'作为str表示时,它的值是
'\xc4\xe3\xba\xc3'
这其实是汉字你好的gb编码,因为我用的windows xp系统的默认编码是gbk,所以在控制台里输入的汉字也是gbk编码的。
Python提供了encode()和decode()这两个方法供我们进行编码转换。由于Python内部是Unicode表示的,所以这两个方法都和Unicode有关。
s.decode()是把str字符串s解码成Unicode字符串,注意如果s不是str字符串(那么它就是Unicode字符串),调用这个方法可能
会出错。使用这个函数,你要指定s的编码方式,比如我要把上面的’你好‘转换成Unicode编码,需要这样
>>> '你好'.decode('gbk')
u'\u4f60\u597d'
>>>
结果返回一个Unicode表示的’你好‘
s.encode()把Unicode字符串编码成另外一种编码的ascii字符串。s这时候必须是一个Unicode字符串,否则可能
出错。
>>> u'你好'.encode('gbk')
'\xc4\xe3\xba\xc3'
>>>
结果返回一个str字符串表示的’你好‘。
利用encode和decode就可以实现任意编码之间转换。
代码文件中的字符串默认是和代码文件本身的编码一致。文件test.py,编码为gbk
#-*-coding:gbk-*-
t = '你好'
x = u'你好'
那么t的编码是gbk,而x的编码是Unicode,x的编码与文件编码无关。
分享到:
相关推荐
Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式。 base64模块的base64编码、解码调用了binascii模块,...
如何读写文本文件?...python2.x 写入文件前对 unicode 编码,读入文件后对二进制字符串解码 >>> f = open('py2.txt', 'w') >>> s = u'你好' >>> f.write(s.encode('gbk')) >>> f.close() >>> f = open('py2.txt',
Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式。 base64模块的base64编码、解码调用了binascii模块,...
python print(repr(“测试报警,xxxx是大猪头”.decode(“UTF8”).encode(“GBK”)).replace(“\\x”,”%”)) 注意第一个 decode(“UTF8”) 要与文件声明的编码一样。 最开始对这个问题的接触,来自于一个...
其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为 FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:(x>y)> ...
leetcode 2 和 c 力码 这是我对 LeetCode 挑战的解决方案。...反转字符串中的单词 解码字符串 —— 传入: 之字形转换 通配符匹配 包含重复项 III 任务计划程序 质数回文 独特的路径 III 按位与等于零的三元组
使用REST API测试模型功能如果输入是字符串列表,则应将其编码为单个字符串,然后在自定义函数中对其进行解码。 预定义的模型接口仅接受单个输入字符串。 curl -i -X POST -H 'Content-Type: application/json' -d '...
使用REST API测试模型功能如果输入是字符串列表,则应将其编码为单个字符串,然后在自定义函数中对其进行解码。 预定义的模型接口仅接受单个输入字符串。 curl -i -X POST -H 'Content-Type: application/json' -d '...
其中auto方式会自动检测url类型、hex类型的字符串并进行解码 非ASCII编码*-m/--method*支持: utf8 gbk gb2312 big5 utf16 utf7 等所有python支持的编码方式,具体请参考如下链接: python支持的编解码格式 ...
目录爬虫编码总结原因解决方案非正规解决方案python上的一些总结中文用 unicode 表示总结编码与解码decode解码encode编码raw_input相等陷阱小记编码错误问题Illegal Multibyte SequenceInvalid Start Byte总结 ...
libsemver 最初用Python编写的语义版本字符串解析器的MoonScript端口。 libaevent 高级事件库。 libder-decoder 解码使用专有编码规则(ASN.1的子集)编码的数据。 例如,x.509证书。 libcsv CSV解析器。 ...