美文网首页
关于编码那些事儿

关于编码那些事儿

作者: 一杯海风_3163 | 来源:发表于2018-03-13 20:36 被阅读0次
1. 字符串的编码形式

字符串的编码最一开始是ascii,使用8位二进制表示,因为英文就是编码的全部。后来其他国家的语言加入进来,ascii就不够用了,所以一种万国码就出现了,它的名字就叫unicode,unicode编码对所有语言使用两个字节,部分汉语使用三个字节。但是这就导致一个问题,就是unicode不仅不兼容ascii编码,而且会造成空间的浪费,于是uft-8编码应运而生了,utf-8编码对英文使用一个字节的编码,由于这样的特点,很快得到全面的使用。

2. 字节码bytes
2.1字节码使用举例
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> s1='abc'
>>> s1.encode('utf-8')
b'abc'
>>> s2=s1.encode('utf-8')
>>> s2
b'abc'
>>> type(s2)
<class 'bytes'>
2.2. 字节码的修改

要修改bytes中的某一个字节必须要将其转换为bytearray以后才可以。如下:

>>> s2=bytearray(s2)    # 转换为bytearray
>>> type(s2)
<class 'bytearray'>
>>> s2
bytearray(b'abc')
>>> s2[0]=110
>>> s2
bytearray(b'nbc')
2.3. 字节码bytes与字符之间的关系

将表示二进制的bytes进行适当编码就可以变为字符了,比如utf-8或是gbk等等编码格式都可以。(所以我个人的理解就是:有utf-8格式的bytes,也有gbk格式的bytes等等)。

2.4. 字节码bytes与unicode编码的相互转换

这一部分非常重要,所以放在后面具体讲。

3.python2与python3字符串编码的区别

python3默认使用的是str类型对字符串编码,默认使用bytes操作二进制数据流,两者不能混淆!!
Python3有两种表示字符序列的类型:bytes和str。前者的实例包含原始的8位值,后者的实例包含Unicode字符。Python2也有两种表示字符序列的类型,分别叫做str和Unicode,与Python3不同的是,str实例包含原始的8位值;而unicode的实例,则包含Unicode字符。

3.1 python3中str默认为unicode编码
>>> s1='abc'
>>> s2='中国'
>>> s3=s1.encode('utf-8')
>>> s3
b'abc'
>>> s4=s2.encode('utf-8')
>>> s4
b'\xe4\xb8\xad\xe5\x9b\xbd'
>>> s3.decode()
'abc'
>>> s4.decode()
'中国'

s1和s2通过encode('utf-8')都成了二进制文件,字节转换为字符,想要恢复只需decode即可。
str类型有三种类型【basestring】【str】【unicode】。

3.2 python2中str默认是bytes字节类型

字节类型——>字符类型:s.decode('gbk') # 转换为unicode编码

>>>s='中国'
>>>s.decode('gbk').encode('utf-8')     # 相当于s=u'中国'
3.3 Windows系统中文件的编码
  1. 英文文件默认是ASCII编码。
    2.简体中文文件默认是GB2312编码。
  2. 繁体中文文 件默认是Big5编码。

相关文章

  • 关于编码那些事儿

    1. 字符串的编码形式 字符串的编码最一开始是ascii,使用8位二进制表示,因为英文就是编码的全部。后来其他国家...

  • 编码那些事儿

    常见编码 文本编码 常见的文本编码方法有:ANSI(多字节)的ASCII编码、GB2312、GBK、GB18030...

  • 字符编码那些事儿

    每个文本编辑器都有默认的编码方式(比如 UTF-8 编码),当我们保存文档的时候,可以选择编码方式,如果没有特意选...

  • 字符编码那些事儿

    一直被字符的编码搞得头晕脑胀,经常出现乱码却又无可奈何,最近看到两篇讲字符编码的文章,这才有点头绪,于是决定把它写...

  • 编码的那些事儿

    其实不管是用哪种编码,本质上保存的都是二进制。一些基本概念与易错点: 不同的编码,占用的字节数是不一样的。字符在不...

  • 编码篇-开发中关于数字的那些事儿

    前言 在日常的开发中我们随时都会跟数字打着交道,对数字的处理也是很平常的事,本文仅对常用的数字操作一个小结,当一个...

  • 关于《关于那些事儿》

    关于《关于那些事儿》 创建这个专题,并没有什么目的性。关于这个专题,也没有什么分类、定义。 正如我对专题的描述,关...

  • 关于那些事儿

    关于爱,不要太爱自己,太爱自己会变的狭隘自私,令人生厌。也不要太爱人,太爱人容易迷失,也容易令人倍感负累。 关于钱...

  • 关于计算机培训的那些事儿

    关于计算机培训的那些事儿 ...

  • URL编码与解码那些事儿

    打印结果是:

网友评论

      本文标题:关于编码那些事儿

      本文链接:https://www.haomeiwen.com/subject/ffrtqftx.html