Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7669479
  • 博文数量: 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) 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下的字符编码
阅读(3344) | 评论(0) | 转发(0) |
0

上一篇:ExtJS 教程一

下一篇:Ext.Ajax学习例子

给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册