文本处理 - 字符和字符值之间的转换
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()