如果一个project必须在两个平台上开发,我会要求我的程序使用同样的encoding,比如要求所有的文件都使用UTF-8,如果实在不能统一,可以退而求其次,用当前系统编码决定文件内文的编码: import locale import string import re #根据当前系统的encoding构造需要的编码取值 lang = string.upper(locale.setlocale(locale.LC_ALL, "")) textencoding = None #检查编码的值是不是满足我们需要的情况 if re.match("UTF-8", lang) != None: # UTF-8编码 textencoding = "utf-8" elif re.match(r"CHINESE|CP936", lang): # Windows下的GB编码 textencoding = "gb18030" elif re.match(r"GB2312|GBK|GB18030", lang): # Linux下的GB编码 textencoding = "gb18030" else: # 其他情况,抛个错误吧 raise UnicodeError fd = file(filename, "r") fulltextlist = fd.readlines() # 把每一行转换成unicode for each in len(fulltextlist): fulltextlist[i] = unicode(each, textencoding) fd.close() # 如果要打印的话,可以用 text.encode(encoding) 来恢复成多字节编码
#现在的版本好像已经默认支持Unicode编码了-----收藏了