汉字“你”的unicode编码为u'\u4F60',将该编码用ASCII字符表示为字符串“4F60”。按照这样的规则将一字符串编码后,如何还原为unicode字符串?
可以通过使用两个Python内置的函数来简单解决这个问题。
int( [x [, radix] ]) —— 该函数将字符串x按照指定的进制radix转换为数字
unichr(i) —— 该函数返回一个字符的unicode字符串,该字符的unicode编码是整数i
则有:
>>>print unichr(int('4F60', 16))
你
由此,利用下面的函数,字符串“4F6060F354034EC04E48FF1F621160F3572895474E0A901B901BFF01" 可解析为“你想吃什么?我想在镇上逛逛!”
def ucps2str(ucpstr):
''''Convert unicode code point (in hex) ascii string to unicode string'''
s = ''
for i in range(len(ucpstr)/4):
ucp = ucpstr[i*4:i*4+4]
s = s + unichr(int(ucp, 16))
return s
if __name__ == '__main__':
ucps = '4F6060F354034EC04E48FF1F621160F3572895474E0A901B901BFF01'
print "Original: %s " % ucps
print "Converted: %s " % ucps2str(ucps)
关于unicode和Python中unicode的相关内容,可参考如下链接:
1)
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) Joel Spolsky关于unicode概念的文章,入门必读。
2) Python中的unicdoe
3) Python中使用UTF-8,以及Unicode文件的处理
4)
谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词 解释了很多概念
5) 有部分关于Python和Unicode的内容
6) 详细介绍了UTF-8编码的方法,有相关代码
7) 介绍了我永远都搞不懂的Windows下的字符编码
阅读(4737) | 评论(0) | 转发(0) |