码迷,mamicode.com
首页 > 编程语言 > 详细

关于python27 中文编码

时间:2015-02-10 12:44:24      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

看了网上好多的资料,以前一直不理解encode,decode以前uncode,utf-8,现在理解了,uncode是转码内部中介,比如

#coding:utf-8

a=中国
print repr(a)
#这个时候a是utf8的字节流
b=a.decode(utf8)
print repr(b)
#b是uncode字串了
#由于在windows,cmd控制台上能显示的编码只有gbk或是uncode,但是不能显示utf8
#我们在写控制台程序的时候需要将utf8转为gbk显示
c=b.encode(gbk)
print repr(c)

print a
print b
print c

decode是将其他编码的字串解码为uncode,encode是将uncode编码的字串编码为其他编码串以便保存或显示,uncode是一个内部中介

 

在交互式shell(idlle)里有一个问题就是在windows下,a=u’中国’是,会被这个u会被原样复制,如下图,但是写进脚本运行,就没有问题,还有发现不带b的版本的pymssql也有这个问题,读出来的gbk串会被无故的加上u但是编码没变有些输入法输入也是问题,会莫名其妙的多个字符进去.

Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> a=u
>>> a
u\xd6\xd0
>>> a=

>>> a
\xd6\xd0
>>>

下面附上今天写的一个根据日志统计出现次数的小程序:

#coding:utf-8
#count jiebang times in log
#文件里出现一次发送群消息成功,就视为一次解绑成功

import os
from time import sleep
logpath=c:\log.log    #定义解绑日志路径

file=open(logpath,r)  #以只读方式打开解绑文件,生成解绑文件对象
a=u发送群消息成功    #初始化判断字串
countline=0     #初始化总行数
countjiebang=0  #初始化解绑次数

while 1:
    line=file.readline()    #读取解绑
    if not line:break       #如果到文件尾,跳出
    #print line
    countline+=1
    if a in line.decode(gbk):
    #由于是用到gbk码,所以要decode
    #判断此行是否含有判断字串
        #print 1 #测试用
        countjiebang+=1
        #sleep(2)    #测试用
file.close()    #关闭文件对象
print repr(a)
print lines:,countline #显示有一共有多少行
print jiebang times:,countjiebang  #显示解绑了多少次
os.system(pause)

log.log 片断:

2015-02-09 18:23:46    信息    解绑:1652392404|13122700501|13解绑:1
2015-02-09 18:24:58    信息    发送短信中心心跳成功.
2015-02-09 18:25:03    信息    解绑 压入堆栈|15661614231|上海市宝山区
2015-02-09 18:25:03    信息    群消息:41897886|(931010138)|消息:解绑 15661614231 
2015-02-09 18:25:06    信息    群:1545325917 发送群消息成功:【15661614231】在 上海市宝山区 解绑成功!

感谢:http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html此篇博文,网上有些直接扫下来的文章会让人迷惑.

关于python27 中文编码

标签:

原文地址:http://www.cnblogs.com/sprite/p/4283269.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!