易截截图软件、单文件、免安装、纯绿色、仅160KB

话说Python(三)万恶的编码

万恶的编码
小菜对于老师上一节讲的不是很明白,因为没有一本书是将文件与web一起讲授的,他决定自己探究一下它们之间的不同:
首先,小菜在C盘建了一个文本文档 file.txt,输入四个字:我是小菜。
然后,小菜在shell中练习起来:
>>> file=open("c:\\file.txt","r")
>>> data=file.read()
>>> print(data)
我是小菜
>>>

小菜有了成就感,接着试一试这个:
>>> import urllib.request
>>> page=urllib.request.urlopen("http://www.baidu.com")
>>> data=page.read()
>>> print(data)
b'<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>\xb0\xd9\xb6\xc8\xd2\xbb\xcf\xc2\xa3\xac\xc4\xe3\xbe\xcd\xd6\xaa\xb5\xc0
#在这里为了节约篇幅我省略了后面内容

“不对啊,这些反斜杠是啥啊!汉字咋没了?”小菜对于这种蔑视汉语的行为非常愤慨,“怪不得中国人编程不行了,连汉字都要折腾半天。”
第二天一上课,小菜跑到老师跟前,抱怨起来:“文件和网络读取的结果不一样啊!一个正常,一个不显示汉字。”
大牛老师笑着说:“这不能怪你,是我没有讲清楚。”
Python 3.x 与Python 2.x的不同点之一就是Python3k引入了bytes对象,刚才小菜在file中得到的是string(字符串),而在url中得到的是bytes(字节)。在最后的输出里,前面有一个b,指的就是bytes。其实,如果open采用“b”模式的时候,得到的也是bytes,将字节转化就要学到今天的内容:编码。
Python3k中采用两个函数完成这个工作:encode()和decode()。
顾名思义:encode()是进行编码的,将字符串编码成想要的编码格式。
decode()是进行解码的,将编码的字节解码为字符串。
常用的编码格式有ASCII、unicode、UTF-8、big5、gbk、gb2312等,ascii用于北美字符,utf-8、unicode是国际标准,big5是中文繁体,gbk、gb2312是简体中文。
小菜的web数据是gb2312编码的,可以在后面写
>>> content=data.decode('gb2312')
>>> print(content)
<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>百度一下,你就知道 </title>


相关文档:

初始化函数中的虚函数调用( C++ vs python )

代码+结果,不做解释
当然,对于python没有virtual function一说,估计当作对比一个例子看看吧。
#include <iostream>
using namespace std;
class base
{
public:
virtual void foo() { cout << "base" << endl; }
base() { foo() ;}
};
class derive: public base
{
pub ......

python绘制螺旋线

#coding=utf-8
from math import sqrt,cos,sin
import Image, ImageDraw
class SpireShape(object):
    def __init__(self, draw):
        self.draw = draw
        self.line_width = 1
     & ......

python中编码转换

当python中间处理非ASCII编码时,经常会出现如下错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
0x??是超出128的数字,python在默认的情况下认为语言的编码是ascii编码,所以无法处理其他编码,需要设置python的默认编码为所需要的编码。
一个解决的方案是 ......

python查找中文字符

#filename Seek.py
import unicodedata
import sys
import os
class Seek():
    """
    功能:查找中文,并替换成指定字符或字符串
    使用方法:python脚本用法
    参数说明:
        -d& ......

飞信企业版使用了python...

对于个人版,使用了.NET,安装完企业版后,看了看目录,发现大量python脚本。dll中也有sqlite3.dll
C:\Program Files\China Mobile\Efetion目录下文件:
Addin
boost_python.dll
bz2.pyd
dbghelp.dll
EFetion.exe
EFetion.exe.manifest
EFWP.exe
EFXLiveUpdate.exe
EFXLiveUpdate.exe.manifest
Face
Help.chm
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号