Python · 2012/07/08

获取字符串的unicode码值

最近在写通过PDU方式发送SMS的脚本。unicode这个问题困扰了我几个小时,后来居然歪打正着写对了。现在才了解这个原理:

1. 先将string转换为unicode。为啥要做这一步呢?如果不做,一个中文字符是两个char :0xd6 0xd0 ;做完后,就是一个码字了。

str_str = "中a"  

str_str = unicode(str_str)

2. 得到每个码字的码值:通过ord()获得。

str_uni = ""

for char in str_str:

    char_uni = str(hex(ord(char)))

    str_uni += char_uni

全部代码:

   1: # coding=gbk

   2:  

   3: def GetUnicodeFromString(str_str):

   4:     str_str = unicode(str_str)

   5:     str_uni = ""

   6:     for char in str_str:

   7:         char_uni = str(hex(ord(char)))

   8:         str_uni += char_uni

   9:     return str_uni

  10:         

  11: print GetUnicodeFromString("中a")      

运行结果:0x4e2d0x61