Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7755121
  • 博文数量: 92
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 5216
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-15 17:17
文章分类

全部博文(92)

文章存档

2011年(1)

2008年(91)

我的朋友

分类: 系统运维

2008-05-14 14:22:28

汉字“你”的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下的字符编码
阅读(3919) | 评论(0) | 转发(0) |
0

上一篇:ExtJS 教程一

下一篇:Ext.Ajax学习例子

给主人留下些什么吧!~~