技术开发 频道

抛砖引玉 python中的unicode操作

  【IT168 技术文档】本人献丑先,将unicode操作的经验点滴再贴一遍,希望能够起到抛砖引玉的作用,有不对的请指正。

  1、要注意命令行下与GUI下显示有差别,测试最好在交互示环境下进行,因为GUI的显示模块对测试有影响

  2、在2.3b1版本中,可以在源码文件上加上如下两行,不需解码即可识别中文字符,但使用unicode编码才可获得正确的中文处理

  #!/usr/bin/env python   # -*- coding: cp936 -*-   import locale   encoding = locale.getdefaultlocale()[1]   s1 = unicode('中华人民共和国', encoding)   s2 = '中华人民共和国'   print s1.encode(encoding), s2   print len(s1), len(s2) # 输出:7 14

  3、在sitecustomize.py文件中加入以下两句即支持中文(该文件Python会在启动时自动导入。)

  import sys   sys.setdefaultencoding('mbcs') # mbcs编码支持亚洲语言,包括中文,2.3b1版下也可用cp936编码(关于这些编码,希望有人能够作个专题阐述)   >>> s = '中华人民共和国' # python会自动调用mbcs编码转换,使用时不需任何特殊处理   >>> print s   中华人民共和国   >>>

  4、读写unicode文件

  >>> u = unicode("中国", "mbcs")   >>> u   u'\u4e2d\u56fd'   >>> print u   中国   >>> s = codecs.open("test-uft16.txt", "w", "mbcs")   >>> s.write(u) # 写中文字符到文件   >>> s.close()
0
相关文章