python中的编码和解码
常见编码方式:
- ASCII编码:ASCII是早期的编码,包含英文字母、数字和一些英文符号一共127个符号;
- Unicode编码:不同的语言有各自不同的编码方式,导致在多种语言环境下按照某一种固定的编解码方式会出现乱码。为了统一,制定了Unicode编码。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了,一般使用两个字节表示一个字符。现代的操作系统和大多数编程语言都支持Unicode;
- UTF-8编码:UTF-8是Unicode编码的一种存储和传输的方式。由于英文字符只需要占用一个字节的空间就够了,但如果统一采用Unicode的两个字节来表示,会浪费存储空间,增加传输消耗,UTF-8把Unicode编码转化成“可变长编码”,可以根据不同的符号变化字节的长度;
- GB2312编码:适用于汉字处理、汉字通信等系统之间的信息交换;
- GBK编码:是汉字编码标准之一,是在 GB2312-80 标准基础上的内码扩展规范,使用了双字节编码;
- 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码,当文件被打开的时候,UTF-8字符被转换成Unicode字符到内存中,文件关闭的时候,再从Unicode转化成UTF-8保持到磁盘上,以节省(传输)空间。
python中的编码转化:
python内部的字符串一般是Unicode编码,Unicode是utf-8、gbk等编码的父编码,这些子编码方式之间不能直接转化,需要先转化成Unicode,再转化成其他编码方式,Unicode作为转换的中间码。python中的解码(decode)是从子编码转换成Unicode编码,编码(encode)是从Unicode转其他子编码。
查询字符串是否是Unicode编码:
isinstance(str,unicode)
查询系统默认编码:
import sys
print sys.getdefaultencoding()
编码转换:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
print sys.getdefaultencoding()
str = '中国'
str = str.decode('utf8')
print isinstance(str,unicode)
str = str.encode('gbk')
print isinstance(str,unicode)
python中的编码和解码的更多相关文章
- python中的编码与解码
编码与解码 首先,明确一点,计算机中存储的信息都是二进制的 编码/解码本质上是一种映射(对应关系),比如‘a’用ascii编码则是65,计算机中存储的就是00110101,但是显示的时候不能显 ...
- Python中的编码和解码问题
关于Python中遇到的中文字符串的读取和输入时总是遇到一堆问题,到现在还不是特别明白,只是有了一个大概率的理解,就是:字符串是用什么编码格式编码的,就用什么编码格式来解码. encode()对字符串 ...
- Python中的编码与解码(转)
Python中的字符编码与解码困扰了我很久了,一直没有认真整理过,这次下静下心来整理了一下我对方面知识的理解. 文章中对有些知识没有做深入的探讨,一是我自己也没有去深入的了解,例如各种编码方案的实现方 ...
- python中base64编码与解码
在python3中用base64进行编码和解码的时候特别注意: 题目要求: 准备一张.jpg图片,比如:mm.jpg,读取图片数据并通过b85encode加密之后写入到新文件mm.txt文件中,然后读 ...
- Python 中 base64 编码与解码
base64 是经常使用的一种加密方式,在 Python 中有专门的库支持. 本文主要介绍在 Python2 和 Python3 中的使用区别: 在 Python2 环境: Python 2.7.16 ...
- python中的编码问题:以ascii和unicode为主线
1.unicode.gbk.gb2312.utf-8的关系 http://www.pythonclub.org/python-basic/encode-detail 这篇文章写的比较好,utf-8 ...
- 【转】【Python】 python中的编码问题报错 'ascii' codec can't decode 及 URL地址获取中文
1.unicode.gbk.gb2312.utf-8的关系 http://www.pythonclub.org/python-basic/encode-detail 这篇文章写的比较好,utf-8是u ...
- python基础系列教程——Python中的编码问题,中文乱码问题
python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...
- 转 python3中SQLLIT编码与解码之Unicode与bytes
#########sample########## sqlite3.OperationalError: Could not decode to UTF-8 column 'logtype' with ...
随机推荐
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round]
一部分题解,算是自己SB了 上午的TC 也是这样 写好了代码,却一直没注意细节,然后以为错了. 此处省100字,ps 貌似紫了,作为一个老菜鸡,终于紫了 A,B 都是语文题 C: 给以一个三角形一样的 ...
- [BOI2007] Mokia
题目描述 摩尔瓦多的移动电话公司摩基亚(Mokia)设计出了一种新的用户定位系统.和其他的定位系统一样,它能够迅速回答任何形如“用户C的位置在哪?”的问题,精确到毫米.但其真正高科技之处在于,它能够回 ...
- org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成,的错误问题
当时在mapper其中的一个语句是case when ISNULL(b.c_truename) || LENGTH(TRIM(b.c_truename)) < 1 then b.c_ch_nam ...
- 【J2EE】十三个规范:愿天下苍生,人人如猿。
学习了J2ee后对java这个立足标准化的行为感到深深的佩服. 收买什么都不如收买人心,培养啥子都不如培养 习惯.没错,java就是在培养行业习惯,以一纸规范屹立不倒.毕竟技术什么的层出不穷,再新再前 ...
- C++常用字符串分割方法
一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串, ...
- jmeter - DBC Request之Query Type
工作中遇到这样一个问题: 需要准备10W条测试数据,利用jmeter中的JDBC Request向数据库中批量插入这些数据(只要主键不重复就可以,利用函数助手中的Random将主键的ID末尾五位数随机 ...
- Elasticsearch shield权限管理详解
Elasticsearch shield权限管理详解 学习了:https://blog.csdn.net/napoay/article/details/52201558 现在(20180424)改名为 ...
- Solidworks修改零件文件名之后工程图找不到零件怎么办
如下图所示,如果我直接把"压紧柱 V1.0"改名为"压紧柱",则打开工程图之后图纸都没了. 即便你用打开零件的方式找到了这个零件,工程图还是老样子 所以 ...
- 关于 redux-saga 中 take 使用方法详解
本文介绍了关于redux-saga中take使用方法详解,分享给大家,具体如下: 带来一个自己研究好久的API使用方法. redux-saga中effect中take这个API使用方式,用的多的是ca ...
- 心情日记app总结 数据存储+服务+广播+listview+布局+fragment+intent+imagebutton+tabactivity+美工
---恢复内容开始--- 结果截图如下: 第一张图是程序主界面,主要是显示记事列表的一些个事件.旁边的侧拉框是自己登陆用的.可以设置密码.可以查看反馈与关于等信息. 点击第一张图片下方的图标,会显示不 ...