本人獻丑先,將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()