您的位置:首页 > 编程语言 > Python开发

使用python将用ASCII表示的16进制unicode编码的ASCII字符串转换为unicode字符串

2008-01-03 16:56 1491 查看
汉字“你”的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) All About Python and Unicode Python中的unicdoe

3) How to Use UTF-8 with Python Python中使用UTF-8,以及Unicode文件的处理

4) 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词 解释了很多概念

5) Unicode for Programmers 有部分关于Python和Unicode的内容

6) The Basics of UTF-8 详细介绍了UTF-8编码的方法,有相关代码

7) The Complete Guide to C++ Strings, Part I - Win32 Character Encodings 介绍了我永远都搞不懂的Windows下的字符编码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐