常见编码介绍:

GB2312编码:适用于汉字处理、汉字通信等系统之间的信息交换;
GBK编码:是汉字编码标准之一,是在 GB2312-80 标准基础上的内码扩展规范,使用了双字节编码
ASCII编码:是对英语字符和二进制之间的关系做的统一规定。主要是老美用.
*****日本、韩国其他国家也有自己的编码规则,如果多语言混用就出现乱码,所以unicode产生
Unicode编码:这是一种世界上所有字符的编码。当然了它没有规定的存储方式。
UTF-8编码:是 Unicode Transformation Format - 8 bit 的缩写, UTF-8 是 Unicode 的一种实现方式。它是可变长的编码方式,可以使用 1~4 个字节表示一个字符,可根据不同的符号而变化字节长度。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间,UTF-8的一个好处在于,原有的ASCII的编码可以在UTF-8下继续工作。

编码转换

字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。

因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码

代码中字符串的默认编码与代码文件本身的编码一致。

如:s='中文'

如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。这种情况下,要进行编码转换,都需要先用decode方法将其转换成unicode编码,再使用encode方法将其转换成其他编码。通常,在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。

如果字符串是这样定义:s=u'中文'

则该字符串的编码就被指定为unicode了,即python的内部编码,而与代码文件本身的编码无关。因此,对于这种情况做编码转换,只需要直接使用encode方法将其转换成指定编码即可。

例如

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:

rw-file-utf-8

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:

web-utf-8

所以你看到很多网页的源码上会有类似的信息,表示该网页正是用的UTF-8编码。

ps:内容来自网络,链接:http://blog.csdn.net/CodeFromNow/article/details/51711493,http://www.cnblogs.com/testlife007/p/4555353.html

最新文章

  1. mysql中价格用什么数据类型表示最佳?
  2. [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(4)
  3. 原生JS:Array对象详解
  4. iOS文件解压&&数据加密
  5. Linux LVS Nginx HAProxy 优缺点
  6. JS的setTimeout函数第一个参数问题
  7. Java第一阶段总结
  8. WordPress 前端投稿/编辑插件 DJD Site Post(支持游客和已注册用户)
  9. HTML&CSS基础学习笔记—创建列表
  10. 玩转iOS开发 - JSON 和 Xml 数据解析
  11. 读书笔记 effective c++ Item 41 理解隐式接口和编译期多态
  12. Scrapy工作原理
  13. logistic regression浅析
  14. 前端 json 导出 excel
  15. hdu-2419 Boring Game
  16. How to fix the bug “Expected "required", "optional", or "repeated".”?
  17. VBA编程中的 sheet1 与 sheets(1)的区别
  18. MySQL 分组之后如何统计记录条数 gourp by 之后的 count()
  19. 【RF库Collections测试】List Should Not Contain Duplicates
  20. 【WebForm】知识笔记

热门文章

  1. JAVA SE Download
  2. Delphi中绘制圆角矩形的窗体
  3. hadoop2.x需要知道的默认yarn配置
  4. CentOS部署软件and so on……
  5. 案例 查询QC(query_cache)
  6. mybatis 处理枚举类型
  7. 【POJ】2240 Arbitrage
  8. idea引入项目下所有文件(ps:包括静态文件夹)
  9. jmeter在windows环境下系统参数设置
  10. css元素垂直居中