编码转换

Python Unicode与中文处理

感情迁移 提交于 2020-03-19 12:35:22
转自:http://blog.csdn.net/dao123mao/article/details/5396497 python中的unicode是让人很困惑、比较难以理解的问题,本文力求彻底解决这些问题; 1.unicode、gbk、gb2312、utf-8的关系; http://www.pythonclub.org/python-basic/encode-detail 这篇文章写的比较好,utf-8是unicode的一种实现方式,unicode、gbk、gb2312是编码字符集; 2.python中的中文编码问题; 2.1 .py文件中的编码 Python 默认脚本文件都是 ANSCII 编码的,当文件 中有非 ANSCII 编码范围内的字符的时候就要使用"编码指示"来修正。 一个module的定义中,如果.py文件中包含中文字符(严格的说是含有非anscii字符),则需要在第一行或第二行指定编码声明: # -*- coding=utf-8 -*-或者 #coding=utf-8 其他的编码如:gbk、gb2312也可以; 否则会出现类似:SyntaxError: Non-ASCII character '/xe4' in file ChineseTest.py on line 1, but no encoding declared; see http://www.pytho

Python二三事 - 接触Python(x,y)

余生颓废 提交于 2020-03-18 11:52:27
注释:本文原来转自博客大巴的一篇文章,向原作者致谢!我也做了相应的修改,更加完善对于Pythonx,y的介绍 Python 二三事   面向初学者介绍Python相关的一些工具,以及可能遇到的常见问题。 更新1st 2011.1.15 更新2nd 2012.3.4 引言 在这里我假设你已经看完了一篇Python教程,基本熟悉了Python的结构和语法,在命令行下的Python互动环境中尝试过大部分Python的语句,觉得Python是个不错的语言准备继续下去。那么本篇文章会就Python实际运用中相关工具的选择,包括IDE,调试套件,第三方库管理工具这些进行介绍。另外还会对某些中文环境下容易遇到的问题,例如unicode编码解码的问题进行说明。本文主要是针对 Windows 环境下的 Python 开发进行说明。文章的目的是为了分享些我觉得很有用的经验和例子,若发现文中有疏漏之处请务必联系我。谢谢。 Python 语言介绍 Python 是一个近些年在开始流行起来的计算机编程语言。根据 Python官网 上的简介,Python主要特性包括跨平台,免费,简单且容易维护。就我个人理解来说,Python是一门适合大部分人的语言,因为各种类型的第三方库都有,所以像简单桌面程序,动态网站开发,图像处理,表格处理,甚至自动发帖机这些小应用在简单的学习后

TypeError: a bytes-like object is required, not 'str'--引申出bytes和str类型详细说明

て烟熏妆下的殇ゞ 提交于 2020-03-17 22:55:04
####本篇文章摘录了Chown-Jane-Y 和 singularity的文章#### TypeError: a bytes-like object is required, not 'str' 问题分析 该问题主要是由于当前操作的字符串是bytes类型的字符串对象,并对该bytes类型的字符串对象进行按照str类型的操作。 如下面图所示,s 为bytes类型字符串对象。 当对s进行按照str类型的操作(split)时,会弹出一下错误提示。因为split函数传入的参数是str类型的字符串,而党鞭的s为bytes编码类型的字符串对象 解决方法 此时的解决办法是,将s转码成为str类型的或者是将对s进行str类型操作转化为对bytes类型的操作。 方法1:bytes-->str 方法2:对s进行str类型操作转化为对bytes类型的操作 由于split里面用到分解字符串中的是空格‘ ’,但是该‘ ’是按照str编码的,需要转化成为bytes类型的,然后再直接对s进行对bytes类型的操作。 str和bytes类型之间的常用转码方式: 1、str to bytes:(3种方式) 2、bytes to str (3种方式) Python3中的bytes和str类型 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是 Unicode ,由 str 类型表示

python基础学习day7

可紊 提交于 2020-03-17 19:17:00
基础数据类型的补充;编码的进阶 str capitalize() 首字母(第一个单词)大写,其余变小写 s1 = 'I LIVE YOU' print(s1.capitalize()) >>>I live you title() 每个单词的首字母大写。(以特殊字符(非字母)隔开的即为一个单词) s1 = 'I LIVE YOU' print(s1.title()) >>>I Live You swapcase() 大小写反转 s1 = 'I love YOU' print(s1.swapcase()) >>>i LOVE you center() 居中,有1个必选参数:宽度,一个非必选参数:填充) s1 = 'I' print(s1.center(10,'%')) >>>%%%%I%%%%% find() 通过元素找索引,找到第一个就返回,找不到返回-1。 s1 = 'I love you' print(s1.find('o')) >>>3 index() 通过元素找索引,找到第一个就返回,找不到就报错。 tuple 特殊性:元祖中只有一个元素,并且没有’,‘,则它不是元祖,它与括号中的数据类型一致 tu0 = (1,2) print(tu0,type(tu0)) >>>(1, 2) <class 'tuple'> tu1 = (1) print(tu1,type(tu1)) >>

javaweb学习总结(七)——HttpServletResponse对象(一)(转)

吃可爱长大的小学妹 提交于 2020-03-17 05:57:01
javaweb学习总结(七)——HttpServletResponse对象(一)(转) (每天都会更新至少一篇以上,有兴趣的可以关注)转载自 孤傲苍狼 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。 request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。 一、HttpServletResponse对象介绍      HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。查看HttpServletResponse的API,可以看到这些相关的方法。 1.1、负责向客户端(浏览器)发送数据的相关方法    1.2、负责向客户端(浏览器)发送响应头的相关方法       1.3、负责向客户端(浏览器)发送响应状态码的相关方法    1.4、响应状态码的常量   HttpServletResponse定义了很多状态码的常量(具体可以查看Servlet的API),当需要向客户端发送响应状态码时,可以使用这些常量,避免了直接写数字,常见的状态码对应的常量:   状态码404对应的常量     

HttpServletResponse对象介绍

可紊 提交于 2020-03-17 05:31:36
一、HttpServletResponse对象介绍      HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。查看HttpServletResponse的API,可以看到这些相关的方法。 1.1、负责向客户端(浏览器)发送数据的相关方法    1.2、负责向客户端(浏览器)发送响应头的相关方法       1.3、负责向客户端(浏览器)发送响应状态码的相关方法    1.4、响应状态码的常量   HttpServletResponse定义了很多状态码的常量(具体可以查看Servlet的API),当需要向客户端发送响应状态码时,可以使用这些常量,避免了直接写数字,常见的状态码对应的常量:   状态码404对应的常量      状态码200对应的常量      状态码500对应的常量    二、HttpServletResponse对象常见应用 2.1、使用OutputStream流向客户端浏览器输出中文数据 使用OutputStream流输出中文注意问题:   在服务器端,数据是以哪个码表输出的,那么就要控制客户端浏览器以相应的码表打开,比如:outputStream.write("中国".getBytes("UTF-8"));使用OutputStream流向客户端浏览器输出中文,以UTF

JavaWeb---总结(七)HttpServletResponse对象(一)

给你一囗甜甜゛ 提交于 2020-03-17 05:30:04
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。 request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。 一、HttpServletResponse对象介绍      HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。查看HttpServletResponse的API,可以看到这些相关的方法。 1.1、负责向客户端(浏览器)发送数据的相关方法    1.2、负责向客户端(浏览器)发送响应头的相关方法       1.3、负责向客户端(浏览器)发送响应状态码的相关方法    1.4、响应状态码的常量   HttpServletResponse定义了很多状态码的常量(具体可以查看Servlet的API),当需要向客户端发送响应状态码时,可以使用这些常量,避免了直接写数字,常见的状态码对应的常量:   状态码404对应的常量      状态码200对应的常量      状态码500对应的常量    二、HttpServletResponse对象常见应用 2.1

Java Web学习总结(4)——HttpServletResponse对象入门

假装没事ソ 提交于 2020-03-17 04:54:38
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。 request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。 一、HttpServletResponse对象介绍      HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。查看HttpServletResponse的API,可以看到这些相关的方法。 1.1、负责向客户端(浏览器)发送数据的相关方法    1.2、负责向客户端(浏览器)发送响应头的相关方法       1.3、负责向客户端(浏览器)发送响应状态码的相关方法    1.4、响应状态码的常量   HttpServletResponse定义了很多状态码的常量(具体可以查看Servlet的API),当需要向客户端发送响应状态码时,可以使用这些常量,避免了直接写数字,常见的状态码对应的常量:   状态码404对应的常量      状态码200对应的常量      状态码500对应的常量    二、HttpServletResponse对象常见应用 2.1

计算机系统基础摘记——整数在计算机中的表示

穿精又带淫゛_ 提交于 2020-03-17 03:18:45
目录 1 数值的编码 1.1 原码 1.2 移码 1.3 补码 2 整数在计算机中的表示 参考文献 1 数值的编码 计算机是使用二进制来表示信息,因为对于电路来说,表示1和0两个状态是非常容易实现的。若要使用二进制来表示数值,则需要规定二进制对数值进行编码的规则,不同编码规则下,同一串二进制表示的数值可能不同。下面介绍几种常见的整数编码方式。 1.1 原码 原码最容易理解,对于有符号数,最高位是符号位,1表示负数,0表示正数,剩下的各个位乘其位权后相加就是对应的十进制数;对于无符号数,没有符号位。如下表: 二进制编码 有符号数 无符号数 二进制编码 有符号数 无符号数 0000 0 0 1000 8 -0 0001 1 1 1001 9 -1 0010 2 2 1010 10 -2 0011 3 3 1011 11 -3 0100 4 4 1100 12 -4 0101 5 5 1101 13 -5 0110 6 6 1110 14 -6 0111 7 7 1111 15 -7 原码虽然简单,但是计算机并没有采用原码作为其整数编码方案,因为原码有着一些局限性: 对于有符号数,0的表示不唯一; 在二进制层面做加减运算的规则复杂,比如正数的小数减大数(0001 - 0010 = 1001),正负数之间的加减运算(0001 + 1010 = 1001),负数之间的加减运算(1001 -

python编码(二)

泄露秘密 提交于 2020-03-16 23:10:12
谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词 问题一 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢? 我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。但这些标记是基于什么标准呢? 问题二 最近在网上看到一个 ConvertUTF.c,实现了UTF-32、UTF-16和UTF-8这三种编码方式的相互转换。对于Unicode(UCS2)、GBK、UTF-8这些编码方式,我原来就了解。但这个程序让我有些糊涂,想不起来UTF-16和UCS2有什么关系。 查了查相关资料,总算将这些问题弄清楚了,顺带也了解了一些Unicode的细节。写成一篇文章,送给有过类似疑问的朋友。本文在写作时尽量做到通俗易懂,但要求读者知道什么是字节,什么是十六进制。 0、big endian和little endian big endian和little endian是CPU处理多字节数的不同方式。例如“汉”字的Unicode编码是6C49。那么写到文件里时