使用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下的字符编码
可以通过使用两个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下的字符编码
相关文章推荐
- python 2.x将raw_input()方式输入的字符串转换为unicode编码
- JSON: Python Objects与String之间转换【json.dumps把python任意数据类型转换成字符串,json.loads把字符串转换为unicode编码】
- Python3 使用 unicode-escape 处理 unicode 16进制字符串编解码问题
- jpype使用到字符串时尽量使用toString转换为python的str,不然很有可能会被字符串编码搞疯
- python经常使用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
- python str方法转换为字符串 对于Unicode会调用系统默认编码
- Python中unicode编码的字符串和其他格式的字符串之间进行转换
- 二者都是将 byte[] 转换成字符串,一个区别在于 Convert.ToBase64String 使用 base 64 数字编码,所以它生成的全部是 ASCII 字符。
- 把unicode编码的十六进制字符串转换为汉字(Python2.7)
- Python 普通str字符串 和 unicode 字符串 及字符串编码探测、转换
- Python基础---字符串编码(Unicode, UTF-8, ASCII)
- python的string与Unicode转换,gbk字符串编码
- python经常使用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
- python常用的十进制、16进制、字符串、字节串之间的转换
- python常用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
- VC++ 中使用 std::string 转换字符串编码
- 字符串编码问题(Ascii、Unicode、UCS-2、GBK、UTF-8)
- python字符串编码和转换
- python编码问题 -- UnicodeEncodeError: 'ascii' codec can't encode characters in position
- python:正确的对未知编码的字符串进行预处理-Unicode-UTF8-gbk