名称 说明
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. 转1:Python字符编码详解

    Python27字符编码详解 声明 一 字符编码基础 1 抽象字符清单ACR 2 已编码字符集CCS 3 字符编码格式CEF 31 ASCII初创 311 ASCII 312 EASCII 32 MB ...

  2. python 字符编码练习

    通过下面的练习,加深对python字符编码的认识 # \x00 - \xff 256个字符 >>> a = range(256)>>> b = bytes(a) # ...

  3. Python字符编码讲解

    声明:本文参考 Python字符编码详解 在计算机中我们不管用什么语言和程序,最终数据在计算机中的都是字节码(也就是01形式)的形式存在的,如果 计算机直接把字节码显示在屏幕上,很明显一般人看不懂字节 ...

  4. 深入理解Python字符编码--转

    http://blog.51cto.com/9478652/2057896 不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError ...

  5. 深入理解Python字符编码

    不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError.UnicodeDecodeError 错误,每当遇到错误我们就拿着 enc ...

  6. Python字符编码详解,str,bytes

    什么是明文 “明文”是可以是文本,音乐,可以编码成mp3文件.明文可以是图像的,可以编码为gif.png或jpg文件.明文是电影的,可以编码成wmv文件.不一而足. 什么是编码?把明文变成计算机语言 ...

  7. Python字符编码补充

    字符编码: Python字符编码贯穿Python学习的始终,现在应用的是Python2中字符编码的问题是很多的. 这次是要彻底解决Python字符编码的问题!!! 1 字符编码的发展过程: 1 .AS ...

  8. python --- 字符编码学习小结(二)

    距离上一篇的python --- 字符编码学习小结(一)已经过去2年了,2年的时间里,确实也遇到了各种各样的字符编码问题,也能解决,但是每次都是把所有的方法都试一遍,然后终于正常.这种方法显然是不科学 ...

  9. 转2:Python字符编码详解

    1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有 ...

随机推荐

  1. 利用蒙特卡洛(Monte Carlo)方法计算π值[ 转载]

    部分转载自:https://blog.csdn.net/daniel960601/article/details/79121055 圆周率π是一个无理数,没有任何一个精确公式能够计算π值,π的计算只能 ...

  2. [算法专题] BST&AVL&RB-Tree

    BST 以下BST的定义来自于Wikipedia: Binary Search Tree, is a node-based binary tree data structure which has t ...

  3. Spring事务管理(详解+实例)

    1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是 ...

  4. Servlet案例1:用户登录

    数据库准备: CREATE DATABASE web; USE web; CREATE TABLE users( id INT PRIMARY KEY AUTO_INCREMENT, username ...

  5. [git] 文件操作

    文件操作 1.  git  add 1.1 将未被git管理的文件添加到暂存区 一次可添加多个文件 文件夹,中间用空格隔开 git  add  文件/文件夹  文件/文件夹 再次执行 git  sta ...

  6. .NET手记-Autofac入门Getting Started

    内容主要翻译自官方文档,原文请看:http://autofac.readthedocs.org/en/latest/getting-started/index.html#application-sta ...

  7. Spark之GraphX的Graph_scala学习

    /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...

  8. Django--Session 操作

    Session Session的由来 Cookie虽然在一定程度上解决了“保持状态”的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要 ...

  9. Android invalidate()方法 requestLayout()方法分析

    强调一点的就是,在onMeasure(),onLayout(),onDraw()这三个流程中,Google已经帮我们把draw()过程框架已经写好了,自定义的ViewGroup只需要实现 measur ...

  10. Kotlin 最佳实践

    为什么写此文 Kotlin很烦,Gralde很烦,还都是升级狂,加一块更烦.几个月不接触Kotlin,再次上手时便一片迷茫.所以记录此文,以便再次上手时查阅. 使用Gradle创建Kotlin项目 m ...