您现在的位置是:主页 > news > 网站要怎么做的/网页设计网站建设
网站要怎么做的/网页设计网站建设
admin2025/5/16 6:10:50【news】
简介网站要怎么做的,网页设计网站建设,自己做网站可以赚钱么,盐城做网站的哪个公司好对一个str对象进行解码。能够获得它表达字符串的Code Point,即unicode对象。对unicode对象进行编码。可获得它的实际二进制表达,即str对象。当想把str对象从一中编码格式转换成还有一种编码格式时,首先得把str转换成unicode对象。再从unicode…
对一个str对象进行解码。能够获得它表达字符串的Code Point,即unicode对象。对unicode对象进行编码。可获得它的实际二进制表达,即str对象。当想把str对象从一中编码格式转换成还有一种编码格式时,首先得把str转换成unicode对象。再从unicode对象转换成第二种编码格式的str对象。
以下运行一个str对象从utf8格式到gbk格式的转换:
>>> str="你好"
>>> str
'\xe4\xbd\xa0\xe5\xa5\xbd' # 採用OS的utf8编码格式
>>> unicode=str.decode("utf8") # 解码成Code Point值
>>> unicode
u'\u4f60\u597d'
>>> str_gbk=unicode.encode("gbk") # 将Code Point编码成GBK格式
>>> str_gbk
'\xc4\xe3\xba\xc3'
>>> unicode.encode() # 假设编码不指定格式,将採用系统默认的编码格式进行编码。对于decode也一样。
这里因为ASCII不能对中文字符编码,所以出错了。
Traceback (most recent call last):
File "", line 1, in
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
>>> u = u"你好" #前缀u自己主动把字符串从utf8转换成unicode格式了
u'\u4f60\u597d'
写文件:
>>> file=open("test.txt", "a")
>>> file.write(str)
>>> file.write(str_gbk)
>>> file.write(unicode)
Traceback (most recent call last):
File "", line 1, in
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
从上面看。UTF8格式的str对象和GBK格式的str对象成功的写入test.txt文件,然而在将unicode对象写入文件时。出现错误了。
这是为什么呢?
str对象表示字符串经编码后的二进制信息,能够直接写入文件。
然后unicode对象表示的是字符串的Code Point值,是抽象的值,用来表示字符,是不能直接写入文件的。所以Python试图使用默认的编码格式ASCII。对unicode对象进行编码,然后将结果存入文件。可是因为ASCII不能对”你好”进行编码,所以报错了。
改动系统默认编码格式:
>>> import sys
>>> reload(sys)
>>> sys.setdefaultencoding("gbk") #不建议这么用[2]
>>> str(unicode) #使用默认GBK,对unicode("你好")进行编码,转成str对象
'\xc4\xe3\xba\xc3'
>>> unicode.encode() #使用默认GBK。对unicode("你好")进行编码,转成str对象
'\xc4\xe3\xba\xc3'
>>> "你好".decode() #由于系统使用UTF8,所以“你好”是UTF8格式的字节串,使用默认GBK对该字节串进行解码,尽管成功执行了,但其结果是不对的。
所以我们须要保证字节串用什么格式编码的。就要用什么格式解码。
u'\u6d63\u72b2\u30bd'
參考文献:
[1] http://www.newsmth.net/bbscon.php?
bid=284&id=84741
[2] http://stackoverflow.com/questions/3828723/why-we-need-sys-setdefaultencodingutf-8-in-a-py-script
[3] http://www.joelonsoftware.com/articles/Unicode.html
[4] http://www.unicode.org/
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5077643.html,如需转载请自行联系原作者