美文网首页
(一)字符串和编码

(一)字符串和编码

作者: 马梦里 | 来源:发表于2017-12-08 20:13 被阅读0次

    计算机只能处理数字,如果要处理文本,那么就先将文本转换为数字。最开始,一个字节(bytes)有8个(bit)‘11111111’,一个字节表示的最大整数是255。ASCII编码只把大小写英文字母、数字和一些符号编码到计算机。但是要处理中文的时候,需要至少两个字节,所以中国就制定了GB2312编码。
    unicode将全世界所有语言都统一到一套编码里面了。unicode使用两个字节进行编码,多余的位置用0补全。当存储的全都是英文的时候,就会导致浪费存储空间,因为英文只需要一个字节存储就够了。
    因此,又出现了把 unicode 编码转化为可变长编码的‘UTF-8’编码。UTF-8 编码把一个 unicode 字符根据不同的数字大小编码成1-6个字节。英文为1字节,中文3个字节。

    计算机系统通用的字符编码工作方式:
在计算机内存中,统一使用 unicode 编码(因为内存快),当需要保存到硬盘或传输的时候,就转换为 UTF-8 编码。

    用记事本编辑的时候,从文本读取的 UTF-8 字符被转换为 unicode 字符保存到内存中,编辑完成后,保存的时候,再把 unicode 转换为 UTF-8 保存到文件。

    浏览网页的时候,服务器会把动态生成的 unicode 内容转换为 UTF-8 再传输到浏览器。

由于python 的字符串是 str,在内存中以 unicode 表示,一个字符对应若干个字节。如果要在网络上传输,或保存到磁盘上,就需要把 str 变为以字节为单位的 bytes
‘ABC’b‘ABC’,虽然显示的内容一样,但前者是 ·str·,而且bytes 的每个字符只占用一个字节,python 的一个字符可以占用几个字节。
unicode 表示的 str 通过 encode() 方法可以编码为指定的bytes
'ABC'.encode('UTF-8')
    反过来,如果我们在网站上读取了字节流,那么读到的就是 bytes。将 bytes 变为 str,就需要用 decode() 方法:
b'ABC'.decode()
len() 计算 str 的字符数:
len('ABC') 3
len('中文') 2
len() 计算 bytes 的字节数:
len(b'ABC') 3
len(b'中文') 6

相关文章

  • Python中的字符串编码

    Python中的字符串编码 定义字符串 Python 中存在两种编码方式的字符串:ASCII 和 Unicode。...

  • (一)字符串和编码

    计算机只能处理数字,如果要处理文本,那么就先将文本转换为数字。最开始,一个字节(bytes)有8个(bit)‘11...

  • 03 python基础二--字符串与编码

    1 字符串和编码 捋一捋ASCII编码和Unicode编码的区别A 用ASCII编码是十进制的 65,二进制的01...

  • 霍夫曼编码

    问题: 请设计一个算法,给一个字符串进行二进制编码,使得编码后字符串的长度最短 思路:使用霍夫曼编码构造字符串编码...

  • golang字符串重新编码

    golang 字符串重新编码 golang 字符串重新编码//byte decode/*** function ...

  • python 高级方法

    Python的字符串类型 字符编码方法 查看Python中的字符串编码名称,查看系统的编码 源文件字符集编码声明:...

  • 【译】runtime编程指南_07类型编码

    类型编码 为了协助 runtime 系统,编译器将吧参数和返回值编码为字符串,并把这个字符串和方法选择器关联起来。...

  • 字符串和编码

    1. 字符编码 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。8个比特(bit)作为一个字...

  • 字符串和编码

    五一假期,偷懒没做功课。 平时闲着的时候,回忆一下学过的命令,还是多少能够帮助记忆的。 今天的内容是字符串和编码。...

  • node.js进阶【19】:base64 编码解码

    base64 编码解码 一、普通字符串 编码解码: 二、编码解码并转成hex 三、编码解码图片

网友评论

      本文标题:(一)字符串和编码

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