python中文编码问题

1.设置默认编码为utf-8
有2种方法设置python的默认编码:
一个解决的方案在程序中加入以下代码:
Python代码 
import sys 
reload(sys) 
sys.setdefaultencoding('utf8')  
 另一个方案是在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:
Python代码 
# encoding=utf8 
import sys 
 
reload(sys) 
sys.setdefaultencoding('utf8')  
此时重启python解释器,执行sys.getdefaultencoding(),发现编码已经被设置为utf8的了,多次重启之后,效果相同,这是因为系统在python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动的加上解决代码,属于一劳永逸的解决方法。
2.写文件时:先转成UNICODE字符串再写(在linux上字符可直接写),或者先解码utf-8再写
    tmpstr=u"中文count of cmd:%d; count of logs:%d; all the command is executed"%(cmdcount,logcount)
            ws.write(stline+line,6,tmpstr)
或者:ws.write(stline+line,4,logdict[i+1].decode('utf-8'))    
3.处理网页信息获取时或者从本地文件中读取的中文内容:

# 获得系统默认编码格式
import sys
ctype=sys.getfilesystemencoding()
print 'ctype=',ctype

读网页:
response=urllib.urlopen(url)
html=response.read()
先解码再编码为设置的编码UTF8:
html=html.decode(ctype).encode('utf8')
统一了编码后就可以随便进行操作了:
html.count("中文")
html.find("中文")

读文件:

for line in fp:
    line=line.decode(ctype).encode('utf8')
    print line.count('中文')
    if  '中文' in line:
        print line

4.写文件 

需要处理中文时文件编码用gbk,经在win7和AIX上验证写普通文本文件不会乱码,EXCEL先解码再写入

#coding=gbk

text='中文字符‘

ws.write(self.row, self.col, text.decode('gbk'))

用utf8写EXCEL也一样

#coding=utf8

text='中文字符‘

ws.write(self.row, self.col, text.decode('utf8'))



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值