文本处理 - 字符和字符值之间的转换

1. 使用ord将一个字符转换为相应的ascii值
1 >>> print ord('a')
2 97
2. 使用chr将ascii值转换为相应的字符
1 >>> print chr(97)
2 a
3. 使用ord将一个unicode字符转换成相应的unicode值
1 >>> print ord(u'')
2 22909

ord接受长度为1的unicode字符串,根据机器的编码的不同,中文的unicode编码长度可能不为1,下面是另一个机器的运行结果:

1 >>> print ord(u'')
2 TypeError: ord() expected a character, but string of length 3 found

在写python代码需要使用ord处理汉字时,可以在代码头部加上

1 #!/usr/bin/env ython
2 # -*- coding: gbk -*-

gbk使用双字节编码,这样可以保证汉字使用长度为1的字符串就可以表示.

4. 使用uinchr将unicode值转换成相应的字符串
1 >>> print unichr(ord(u''))
2

还可以使用内建函数repr查看gbk编码的字符串:

1 >>> print repr(unichr(22909))
2 u'\u597d'

repr会将任何python对象转换成字符串,对大部分对象只有显示作用,没有实际的意义,比如可以使用repr将函数的名字转换成字符串用做调试:

1 #!/usr/bin/env python
2 
3 def do_something():
4     print "%s is call" % repr(do_something)
5 
6 if __name__ == '__main__':
7     do_something()

 

posted @ 2013-01-22 11:53  uzero  阅读(1619)  评论(0编辑  收藏  举报