抛砖引玉------python中的unicode操作

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

本人献丑先,将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()

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航