Python的编码和解码

在不同的国家,存在不同的文字,由于现在的软件都要做到国际化通用,所以必须要有一种语言或编码方式,来实现各种编码的解码,然后重新编码。

在西方国家,没有汉字,只有英文,所以最开始使用的是ASCII编码,只有96个元素,所以用8位(1字节)就能完全表示,但是无法解析中文。

中国有汉字,所以在计算机的发展史上,出现了GB2312、GB18032、GBK等多种编码方式,在汉字上以2个字节存放。

为了能够实现通用,出现了一种标准的编码方式,unicode编码,在unicode编码中,所有的字符/汉字的表示,都用2个或2个以上的字节,比如英文字符,就是2个字节,汉字是2个或4个字节。对于西方国家来说,以前1个字节能够表示的,现在需要2个字节,所占用的空间翻倍了。所以这个时候就出现了unicode的扩展集,utf-8。

Utf-8在表示英文字符上,还是保留1个字节的表示方法,在表示汉字上,使用3个字节来表示。

由于unicode才是所有国家通用的计算机编码方式,所以在不同的编码之间的转换,必须是要先经过unicode,才能再进行编码成其他的编码,比如uft-8、GBK等。

Utf-8/gbk----------------------decode-----------------àunicode

Unicode------------------------encode----------------àutf-8/gbk

在python中使用的默认编码是unicode,所以在python中创建的任何对象,默认的编码方式都是unicode,不能再进行decode,只能进行encode操作。而在文件头部声明的编码方式,只是为了表明,这个文件的编码方式是哪一种,在不同的解释器上运行,编码方式是跟解释器有关。

Python的编码和解码的更多相关文章

  1. 【转】python 字符编码与解码——unicode、str和中文:UnicodeDecodeError: 'ascii' codec can't decode

    原文网址:http://blog.csdn.net/trochiluses/article/details/16825269 摘要:在进行python脚本的编写时,如果我们用python来处理网页数据 ...

  2. python base64编码和解码图片

    简介 在实际项目中,可能需要对图片进行大小的压缩,较为常见的方法则是将图片转换为base64的编码,本文就python编码和解码图片做出一定的介绍. 代码 import base64 import o ...

  3. python之编码与解码、is 与==的区别

    一.编码与解码 编码的过程其实就是采用一定的编码格式将unicode字符转换成str字符的过程 非ASCII码字符按字节为单位被编码成十六进制转义字符 解码采用的编码格式跟设置和环境有关 ascii ...

  4. python之编码与解码

    编码 字符串被当作url提交时会被自动进行url编码处理,在python里也有个urllib.urlencode的方法,可以很方便的把字典形式的参数进行url编码.当url地址含有中文或者“/”的时候 ...

  5. Python基础-编码与解码

      一.什么是编码 编码是指信息从一种形式或格式转换为另一种形式或格式的过程. 在计算机中,编码,简而言之,就是将人能够读懂的信息(通常称为明文)转换为计算机能够读懂的信息.众所周知,计算机能够读懂的 ...

  6. 【转】python基础-编码与解码

    [转自:https://www.cnblogs.com/OldJack/p/6658779.html] 一.什么是编码 编码是指信息从一种形式或格式转换为另一种形式或格式的过程. 在计算机中,编码,简 ...

  7. python之编码和解码

    编码: 1. ascii. 有: 数字, 字母, 特殊字符. 8bit 1byte 128 最前面是0 2. gbk. 包含: ascii, 中文(主要), 日文, 韩文, 繁体文字. 16bit, ...

  8. python 元组编码和解码问题

    先看一个例子: (u'agentEnum', True, '200', {u'msg': u'\u6210\u529f', u'code': 1}) 在2.7.15版本中,如果有下面代码: def f ...

  9. python字符编码与解码 unicode,str

    解释以下几个问题: (1)python2中str和unicode是两种字符串类型,与字符编码方式是什么关系? (2)str和unicode是怎么相互转换的? (3)'\x...':'\u...', ' ...

随机推荐

  1. SQL Server中LIKE %search_string% 走索引查找(Index Seek)浅析

      在SQL Server的SQL优化过程中,如果遇到WHERE条件中包含LIKE '%search_string%'是一件非常头痛的事情.这种情况下,一般要修改业务逻辑或改写SQL才能解决SQL执行 ...

  2. 如何设置Oracle数据库客户端字符集以及系统中的NLS_LANG环境变量

    概述: 本地化是系统或软件运行的语言和文化环境.设置NLS_LANG环境参数是规定Oracle数据库软件本地化行为最简单的方式. NLS_LANG参数不但指定了客户端应用程序和Oracle数据库所使用 ...

  3. Linux下配置nfs并远程挂载实战探讨

    简单介绍: nfs是网络文件系统,允许一个节点通过网络访问远程计算机的文件系统,远程文件系统可以被直接挂载到本地,文件操作和本地没有区别,如果是局域网的nfs那么io的性能也可以保证 nfs是Netw ...

  4. JavaScript面向对象—基本数据类型和引用数据类型的区别和变量及作用域(函数和变量)

    基本类型和引用类型的值 ECMAScript 变量可能包含两种不同的数据类型的值:基本类型值和引用类型值. 基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置. 而引用 ...

  5. BZOJ 3684 大朋友和多叉树

    BZOJ 3684 大朋友和多叉树 Description 我们的大朋友很喜欢计算机科学,而且尤其喜欢多叉树.对于一棵带有正整数点权的有根多叉树,如果它满足这样的性质,我们的大朋友就会将其称作神犇的: ...

  6. 慢日志查询python flask sqlalchemy慢日志记录

    engine = create_engine(ProdConfig.SQLALCHEMY_DATABASE_URI, echo=True) app = Flask(__name__) app.conf ...

  7. Django-CRM项目学习(四)-stark的分页器与搜索框

    1.分页器 分页器相关知识点,请查看以下链接 https://www.cnblogs.com/gbq-dog/p/10724859.html 2.代码归类 归类前代码 header_list = [] ...

  8. Android 动态设置TextView的drawableLeft等属性

    首先,我们在开发过程中,会经常使用到android:drawableLeft="@drawable/ic_launcher"这些类似的属性: 关于这些属性的意思,无非是在你的tex ...

  9. Cesium如何通过addImageryProvider方法加载SkylineGlobe Server发布的WMS服务

    某某某单位用SkylineGlobeServer7版本发布了好些服务,然后让我们在Cesium里都加载进来展示. 其实只要符合OGC标准的,加进来还是很容易的. 示例代码如下: function te ...

  10. 实现简单的printf函数

    首先,要介绍一下printf实现的原理 printf函数原型如下: int printf(const char* format,...); 返回值是int,返回输出的字符个数. 例如: int mai ...