怎么在Python里使用UTF-8编码
推荐于2016-02-25
展开全部
基本概念
在Python里有两种类型的字符串类型:字节字符串和Unicode的字符串,一个字节字符串就是一个包含字节列表。 当需要的时候,Python根据电脑默认的locale设置将字节转化成字符。 在Mac OX上默认的编码是UTF-8,但是在别的系统上,大部分是ASCII。
比如创建一个字节字符串:
byteString = "hello world! (in my default locale)"
创建一个Unicode字符串:
unicodeString = u"hello Unicode world!"
将一个字节字符串转成Unicode字符串然后再转回来:
s = "hello byte string"
u = s.decode()
backToBytes = u.encode()
以上代码使用的是系统默认的字符来出来转换的。 然而,依赖系统的区域设置的字符集不是一个好主意,或许你的程序在泰文用户的电脑上就会崩溃。 最好的办法就是为字符指定一个编码:
s = "hello normal string"
u = s.decode("UTF-8" )
backToBytes = u.encode( "UTF-8" )
现在,字节字符串s就被当成一个UTF-8字节列表去创建一个Unicode字符串u, 下一行用UTF-8表示的字符串u转换成字节字符串backToBytes.
在Python里有两种类型的字符串类型:字节字符串和Unicode的字符串,一个字节字符串就是一个包含字节列表。 当需要的时候,Python根据电脑默认的locale设置将字节转化成字符。 在Mac OX上默认的编码是UTF-8,但是在别的系统上,大部分是ASCII。
比如创建一个字节字符串:
byteString = "hello world! (in my default locale)"
创建一个Unicode字符串:
unicodeString = u"hello Unicode world!"
将一个字节字符串转成Unicode字符串然后再转回来:
s = "hello byte string"
u = s.decode()
backToBytes = u.encode()
以上代码使用的是系统默认的字符来出来转换的。 然而,依赖系统的区域设置的字符集不是一个好主意,或许你的程序在泰文用户的电脑上就会崩溃。 最好的办法就是为字符指定一个编码:
s = "hello normal string"
u = s.decode("UTF-8" )
backToBytes = u.encode( "UTF-8" )
现在,字节字符串s就被当成一个UTF-8字节列表去创建一个Unicode字符串u, 下一行用UTF-8表示的字符串u转换成字节字符串backToBytes.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询