Python 字符编码简记
| 名称 | 说明 |
|---|---|
| ASCII | 只能存英文和拉丁字符,一个字符占一个字节,8位。 ASCII 码是不支持中文的,支持中文的第一张表是 GB2312 |
| GB2312 | 支持中文,收录了 7445个字符 |
| GBK1.0 | 支持中文,收录了 21886个字符 |
| GB18030 | 收录了 27484个汉字,及藏文,维吾尔文等少数名族文字 |
| unicode | 万国码,支持所有国家和地区的编码,向下兼容 gb2312, gbk |
| UTF-32 | 一个字符占用4个字节 |
| UTF-16 | 一个字符占2个字节或2个以上 |
| UTF-8 | unicode 的扩展集,可变长的字符编码集 (一个英文用 ASCII 来存储,一个中文占3个字节) |
可以简单的理解为:
1.为了处理英文字符,产生了ASCII码。
2.为了处理中文字符,产生了GB2312。
3.为了处理各国字符,产生了Unicode。
4.为了提高Unicode存储和传输性能,产生了UTF-8,它是Unicode的一种实现形式。
注意:
Python2.x 默认编码是 ASCII
Python3.x 默认编码是 unicode,所以 Python3.x 直接支持中文不需要进行二次处理。
GBK转换成 UTF-8 的流程:
1.通过解码 (decode) 转换成 Unicode
2.通过编码 (encode) 转成成 GBK

乱码是因为系统编码与所提供字符的编码不一致所导致的。所以当我们需要操作系统正确的输出一个字符时,除了要知道该字符的字符编码,也要知道自己系统所使用的字符编码。
Linux 系统大部分使用的是 UTF-8 编码,Windoors 系统使用的编码是 GB2312。
可以通过 chardet 来判断字符的编码
安装步骤:
1. 下载 chardet-3.0.4.tar.gz
地址:https://pypi.python.org/pypi/chardet/3.0.4#downloads
2. 解压至安装目录
我的电脑为 D:\software\Python2.7\Lib\site-packages\chardet-3.0.4
3. 打开 Windows 命令行窗口进行安装
进入源码目录

使用 python setup.py install 安装

测试
# -*- encoding:utf-8 -*-
import chardet
name = '你好'
print(chardet.detect(name))
运行结果:

在py2中
#-*- coding: UTF-8 -*-
声明这句话就是告诉 python2.7 解释器 (默认ACSII编码方式)解释的 .py 文件声明下面的内容按 utf8 编码,就是编码(编码成字节串最后转成0101的形式让机器去执行)
参考:http://www.cnblogs.com/yuanchenqi/articles/5938733.html
Python 字符编码简记的更多相关文章
- 转1:Python字符编码详解
Python27字符编码详解 声明 一 字符编码基础 1 抽象字符清单ACR 2 已编码字符集CCS 3 字符编码格式CEF 31 ASCII初创 311 ASCII 312 EASCII 32 MB ...
- python 字符编码练习
通过下面的练习,加深对python字符编码的认识 # \x00 - \xff 256个字符 >>> a = range(256)>>> b = bytes(a) # ...
- Python字符编码讲解
声明:本文参考 Python字符编码详解 在计算机中我们不管用什么语言和程序,最终数据在计算机中的都是字节码(也就是01形式)的形式存在的,如果 计算机直接把字节码显示在屏幕上,很明显一般人看不懂字节 ...
- 深入理解Python字符编码--转
http://blog.51cto.com/9478652/2057896 不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError ...
- 深入理解Python字符编码
不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError.UnicodeDecodeError 错误,每当遇到错误我们就拿着 enc ...
- Python字符编码详解,str,bytes
什么是明文 “明文”是可以是文本,音乐,可以编码成mp3文件.明文可以是图像的,可以编码为gif.png或jpg文件.明文是电影的,可以编码成wmv文件.不一而足. 什么是编码?把明文变成计算机语言 ...
- Python字符编码补充
字符编码: Python字符编码贯穿Python学习的始终,现在应用的是Python2中字符编码的问题是很多的. 这次是要彻底解决Python字符编码的问题!!! 1 字符编码的发展过程: 1 .AS ...
- python --- 字符编码学习小结(二)
距离上一篇的python --- 字符编码学习小结(一)已经过去2年了,2年的时间里,确实也遇到了各种各样的字符编码问题,也能解决,但是每次都是把所有的方法都试一遍,然后终于正常.这种方法显然是不科学 ...
- 转2:Python字符编码详解
1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有 ...
随机推荐
- Docker集群管理工具 - Kubernetes 部署记录 (运维小结)
一. Kubernetes 介绍 Kubernetes是一个全新的基于容器技术的分布式架构领先方案, 它是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernete ...
- 使用ILMerge 打包C# 绿色免安装版程序
使用ILMerge工具,将C#项目debug目录下的exe及其依赖的dll文件打包成一个exe文件,直接双击就可运行. 使用工具: ILMerge :http://www.microsoft.com/ ...
- Visual Studio 2017 调试器的工作进程(msvsmon.exe)意外退出 调试将终止
开发环境: Windows 10 in Parallels Desktop Visual Studio 15.6 场景还原: 使用 Visual Studio 15.6 (即 Visual Studi ...
- 背水一战 Windows 10 (75) - 控件(控件基类): FrameworkElement - 基础知识, 相关事件, HorizontalAlignment, VerticalAlignment
[源码下载] 背水一战 Windows 10 (75) - 控件(控件基类): FrameworkElement - 基础知识, 相关事件, HorizontalAlignment, Vertical ...
- document.domain实现不同域名跨域
利用document.domain 实现跨域:前提条件:这两个域名必须属于同一个基础域名!而且所用的协议,端口都要一致,否则无法利用document.domain进行跨域. 两个子域名:aaa.xxx ...
- MySQL体系结构和存储引擎概述
MySQL体系结构和存储引擎概述 一.定义数据库和实例 数据库: 物理操作系统文件或其他形式文件类型的集合.数据库文件可以是frm.MYD.ibd 结尾的文件. 从概念上来说,数据库是文件的集合,是 ...
- Java中List, Integer[], int[]的相互转换
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Mai ...
- js的微观性能
概述 js的微观性能是指js的某一个表达式或者某一行或者某一块代码的性能.几天前和同事讨论过这方面的内容,今天深入研究了一下,记录下来,供以后开发时参考,相信对其他人也有用. 从一段代码说起 记得以前 ...
- consul初步学习
简介 consul是一个服务发现框架 类似的还有zookeeper,eureka,etcd等 作用 服务发现(service discovery) 健康检查(health checking) 配置存储 ...
- linux中一些简便的命令之wc
wc命令是统计文本中的字符数.单词数以及文本行数的,具体参数如下: -l 统计文本中的行数 -w 统计文本中的单词数 -c/m 统计文本中的字符数 -L 统计文本中最长行的字符数 当然使用时也可以不带 ...