本博文已移致独立博客:www.pubwin2009.net

传送门:http://www.pubwin2009.net/index.php/pubwin/42.html

看了网上好多的资料,以前一直不理解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 中文编码的更多相关文章

  1. 关于python27和windows系统的中文编码问题

    最近想写一个python脚本实现对文件夹中的文件进行批量命名.每个文件对应从txt文档中提取出来的一行,因为文件名是中文,所以涉及到了一些中文编码的问题. 脚本运行环境是win10+python27 ...

  2. 难道.NET Core到R2连中文编码都不支持吗?

    今天写了一个简单的.NET Core RC2控制台程序,发现中文显示一直是乱码.查看操作系统设置,没有问题:查看源文件编码,也没有问题:甚至查看了Console字符编码相关的注册表,依然没有发现问题. ...

  3. Java Web中的中文编码

    Java Web开发中经常会遇到中文编码问题,那么为什么需要编码呢?因为人类需要表示的符号太多,无法用1个字节来表示,而计算机中存储信息最小单元为1个字节.所以必须指定char与byte之间的编码规则 ...

  4. python中文编码问题

    第一步:在代码中输入以下命令,执行: #在Python中显示中文注释和输出中文a ="中文"print a 返回错误: d:\Python27\python.exe "D ...

  5. Java页面中文编码要转换两次encodeURI

    1.js文件中使用encodeURI()方法. login_name = encodeURI(encodeURI(login_name)); 2.action中URLDecoder解码 loginNa ...

  6. python27 ImportError: No module named site

    运行 python27 时发现 提示这个错误 在http://stackoverflow.com/questions/5599872/python-windows-importerror-no-mod ...

  7. ZKUI中文编码以及以docker方式运行的问题

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  8. R语言读写中文编码方式

    最近遇到一个很头疼的事,就是 R语言读写中文编码方式.在网上找到了一篇博文,谢谢博主的精彩分享,让我很快解决了问题,在此也分享一下 R语言读写数据的方法很多,这里主要是我在使用read.csv/rea ...

  9. python27(32位)安装模块报错“error: Unable to find vcvarsall.bat”

    1)首先,下载一个Microsoft Visual C++ Compiler for Python 2.7的补丁,下载地址在这里: http://www.microsoft.com/en-us/dow ...

随机推荐

  1. C# 注销掉事件,解决多播委托链表的问题

    c#的事件是多播委托.当绑定多个事件时,事件会依次触发,清除掉注册的委托链表:方法1  C# Code  12345678910111213141516171819202122232425262728 ...

  2. 虚拟机LUN扩大后,重新分区

    [root@ywcrmdb ~]# fdisk -l Disk /dev/sda: 751.6 GB, 751619276800 bytes 255 heads, 63 sectors/track, ...

  3. iOS 9之Shared Links Extension(Safari Extensibility)

    金田 (github示例源码) 在之前的Blog中有介绍了关于Safari Extensibility的 Content Blocking部分,详情可以看这里 --- iOS 9之Safari广告拦截 ...

  4. Codeforces Round #277.5 (Div. 2) --E. Hiking (01分数规划)

    http://codeforces.com/contest/489/problem/E E. Hiking time limit per test 1 second memory limit per ...

  5. iOS打电话、发邮件、发短信、打开浏览器

    //1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://163@16 ...

  6. EBuild-API常见问题汇总

    问题1:用户访问被防火墙屏蔽检查处理流程 E-Build API(原IBE)是面向航空公司和代理人,以及第三方的航空预订服务产品.用户通过客户端,使用固定IP访问E-Build API服务器,航信网络 ...

  7. 你需要知道的九大排序算法【Python实现】源码

    #coding: utf-8 #!/usr/bin/python import randomimport math #随机生成0~100之间的数值def get_andomNumber(num): l ...

  8. java jodd轻量级开发框架

    http://git.oschina.net/huangyong/jodd_demo/blob/master/jodd-example/src/main/java/jodd/example/servi ...

  9. win32线程池代码(WinApi/C++)

    win32线程池代码(WinApi/C++) 健壮, 高效,易用,易于扩, 可用于任何C++编译器 //说明, 这段代码我用了很久, 我删除了自动调整规模的代码(因为他还不成熟)/********** ...

  10. Vss服务端用户存在,但客户端登陆不进去

    打开客户端Vss提示“Cannot find SS.INI file for user userName”,这个错误是找不到用户userName的SS.INI文件. 解决办法 在服务器上找到Vss共享 ...