龙空技术网

Python基础知识汇总(三)-字符串编码

天才小熊猫 118

前言:

如今兄弟们对“python 判断字符串编码”都比较关注,咱们都需要分析一些“python 判断字符串编码”的相关文章。那么小编在网摘上收集了一些有关“python 判断字符串编码””的相关文章,希望你们能喜欢,我们快快来学习一下吧!

1.什么是字符串编码?

我们都知道计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。计算机从本质上来说只认识二进制中的0和1,可以说任何数据在计算机中实际的物理表现形式也就是0和1。

2.ASCII

最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是 65,小写字母 z 的编码是 122。

3.GB2312

如何让中文被计算机理解?如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和 ASCII 编码冲突,所以,中国国家标准总局1980年发布《信息交换用汉字编码字符集》提出了GB2312编码,用于解决汉字处理的问题。1995年又颁布了《汉字编码扩展规范》(GBK)。GBK与GB 2312—1980国家标准所对应的内码标准兼容,同时在字汇一级支持ISO/IEC10646—1和GB 13000—1的全部中、日、韩(CJK)汉字,共计20902字。

4.unicode

现在英文和中文问题被解决了,但新的问题又出现了。全球有那么多的国家不仅有英文、中文还有阿拉伯语、西班牙语、日语、韩语等等。难不成每种语言都做一种编码?基于这种情况一种新的编码诞生了:Unicode 。Unicode 把所有语言都统一到一套编码里,这样就不会再有乱码问题了。Unicode 通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为 0 就可以。因为 Python 的诞生比 Unicode 标准发布的时间还要早,所以最早的Python 只支持 ASCII 编码,普通的字符串 'ABC' 在 Python 内部都是 ASCII 编码的。Python 在后来添加了对 Unicode 的支持,以 Unicode 表示的字符串用u'...'表示。不过在最新的 Python 3 版本中,字符串是以 Unicode 编码的,也就是说,Python 的字符串支持多语言。

5.UTF-8

不过由于 Python 源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为 UTF-8 编码。当Python 解释器读取源代码时,为了让它按 UTF-8 编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3# -*- coding: utf-8 -*-

第一行注释是为了告诉 Linux/OS X 系统,这是一个 Python 可执行程序,Windows 系统会忽略这个注释;第二行注释是为了告诉 Python 解释器,按照 UTF-8 编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。申明了 UTF-8 编码并不意味着你的 .py 文件就是 UTF-8 编码的,必须并且要确保文本编辑器正在使用 UTF-8 without BOM 编码。

6.总结

***1.为了处理英文字符,产生了ASCII码。

2.为了处理中文字符,产生了GB2312。

3.为了处理各国字符,产生了Unicode。

4.为了提高Unicode存储和传输性能,产生了UTF-8,它是Unicode的一种实现形式。***

7.decode()与encode()方法

decode

encode

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

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

encode():用于编码

str.encode(encoding = 'UTF-8',errors = 'strict')#encoding ------ 要使用的编码格式。如'' UTF-8 ''#errors      ------ 设置不同错误的处理方案,默认为'strict',意为编码错误引起一个UnicodeError。其#它值有'ignore','replace'等

decode():顾名思义,反编码即解码,解码encoding设置的编码格式。

标签: #python 判断字符串编码 #python字符串转换成u编码 #python字符串转unicode编码