本博文已移致独立博客: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语言学习笔记--指针与字符串

    字符类型 char(character)是一种整数,也是一种特殊的类型:字符.这是因为 ① 用单引号表示的字符字符字面量:‘a’,'1' ②‘’也是一个字符 ③printf和scanf里用%c来输入. ...

  2. CPU进程与线程的关系和区别

    进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位. ...

  3. BZOJ1690: [Usaco2007 Dec]奶牛的旅行

    1690: [Usaco2007 Dec]奶牛的旅行 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 552  Solved: 286[Submit][St ...

  4. STL_vector

    1.任何改变vector长度的操作都会使已经存在的迭代器失效 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容 ...

  5. DedeCMS安装及目录结构

    一.安装DedeCMS 1.下载DedeCMS安装包,我下载的版本是DedeCMS-V5.7-UTF8-SP1.tar.gz 官方下载地址 2.解压DedeCMS-V5.7-UTF8-SP1.tar. ...

  6. 【爬虫问题】爬取tv.sohu.com的页面, 提取视频相关信息

    尝试解决下面的问题 问题: 爬取tv.sohu.com的页面, 提取视频相关信息,不可用爬虫框架完成 何为视频i关信息?属性有哪些? 需求: 做到最大可能的页面覆盖率 *使用httpClient 模拟 ...

  7. thread block grid

    grid里面包含block,block里面包含thread grid里面所有的block都是同样大小的,  每个block最多可以有1024个thread. blockDim表示一个block里面th ...

  8. cocos2dx--cocos2dx3.1.1执行报无法解析的外部符号

    使用cocos2dx3.1.1和VS2012 新建了一个名为test的工程.放在D:\cocos2dx\cocos2d-x-3.1.1\projects下 编译通过,没问题 用cocostudio的场 ...

  9. SUSE 在Intel举行"Rule The Stack"的竞赛中获得 "Openstack安装最高速"奖

    有关"Rule The Stack": https://communities.intel.com/community/itpeernetwork/datastack/blog/2 ...

  10. 模拟jquery封装选择器

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...