<p >1.默认编码类型
<p >
<pre >
<code >>>> import sys
sys.getdefaultenCoding()
'utf-8'
python 3.4默认为utf-8编码,python 3.4默认为Ascii编码
2. python3 中字符串的类型
bytearray([source[, enCoding[, errors]]])
<p >Return a new array of bytes. The <a href="http://www.cnblogs.com/itech/admin/EditPosts.aspx?postid=1997878#bytearray" rel="nofollow">bytearray type is a mutable sequence of integers in the range 0 <= x < 256.
bytes([source[, errors]]])
<p >Return a new “bytes” object,which is an immutable sequence of integers in the range 0 <= x < 256. <a href="http://www.cnblogs.com/itech/admin/EditPosts.aspx?postid=1997878#bytes" rel="nofollow">bytes is an immutable version of <a href="http://www.cnblogs.com/itech/admin/Editposts.aspx?postID=1997878#bytearray" rel="nofollow">bytearray.
str([object[, errors]]])
<p >Return a string version of an object. str默认为unicode的字符串。
<p >3.实例
<p >
<pre >
<code >>>> us = "中国"
bs = b'AAA'
bs2 = bytes('中国','gbk')
print(us + ':' + str(type(us)))
中国:<class 'str'>
print(bs) #b'AAA'
b'AAA'
print(bs2)
b'\xd6\xd0\xb9\xfa'
print(':' + str(type(bs2)))
:<class 'bytes'>
print(bs2.decode('gbk')) #中国
中国
三 总结
<p >1) Python 3会假定我们的源码 — 即.py文件 — 使用的是UTF-8编码方式。Python 2里,.py文件默认的编码方式为ASCII。可以使用# -- Coding: windows-1252 --方式
来改变文件的编码。如果py文件中包含中文的字符串,则需要制定为# -- Coding: gbk --,貌似默认的utf8不够哦。
<p >2) python3中默认的str为unicode的,可以使用str.encode来转为bytes类型。
<p >3) python3的print函数只支持unicode的str,貌似没有对bytes的解码功能,所以对对不能解码的bytes不能正确输出。
<p >4) str和bytes不能连接和比较。
<p >5) codecs任然可以用来str和bytes间的转化。
<p >6) 定义非ascii码的bytes时,必须使用如 bytes(<span >'<span >中国<span >',<span >'<span >gbk<span >') 来转码。
总结以上是内存溢出为你收集整理的【Python有坑系列】python中编码问题——unicode, gbk, utf8全部内容,希望文章能够帮你解决【Python有坑系列】python中编码问题——unicode, gbk, utf8所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)