【Python有坑系列】python中编码问题——unicode, gbk, utf8

【Python有坑系列】python中编码问题——unicode, gbk, utf8,第1张

概述<pstyle=\"margin-left:10px;\">1.默认编码类型<pstyle=\"margin-left:10px;\"> 

<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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1209151.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存