首页 > 其他 > 详细

文本编码

时间:2019-09-24 20:04:58      阅读:97      评论:0      收藏:0      [点我收藏+]

字符编码

计算机只能处理数字,如果要处理文本,就必须先把文本转换为计算机能识别的二进制数才能处理,将文本转换为二进制数的过程称为:编码;

  • 常见的字符编码格式有:ASCII,unicode,GBK,UTF-8等

ASCII

ASCII (American Standard Code for Information Interchange): 美国信息交换标准代码,一种使用7个或8个二进制位进行编码的方案(标准ASCII码为7位,扩充为8位),最多可以给256个字符(包括英文大小写字母、数字、标点符号、控制字符及其他符号)

GB2312/GBK

要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

  • GB2312,又称为:《信息交换用汉字编码字符集》,由中国国家标准总局1980年发布,1981年5月1日开始实施的一套国家标准,标准号是GB 2312—1980。
  • GB 2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB 2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。
  • GBK,国标码,又称为:《汉字内码扩展规范》,对原GB2312进行扩充,该标准一经推出,就WINDOWS95所采用。
  • GBK支持繁体/简体中文,GB2312只支持简体中文。

Unicode

全世界有上百种语言,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。因此,Unicode应运而生。

  • Unicode,(万国码,统一码),Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
  • Unicode,又分为两种:ucs-2(2字节的Unicode编码)和ucs-4(4字节的Unicode编码)

UTF-8

新问题的出现:Unicode编码统一采用4字节编码,不利于数据传输,因此,一种对Unicode编码进行压缩的UTF-8编码出现。

  • UTF-8,可变长的万国码,最少使用1个字节(8bit),最多使用4个字节数进行编码,常用的英文字母被编码成1个字节,汉字通常是3个字节。
  • python3默认使用该编码格式。

计算机系统通用的字符编码工作方式

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8或其他编码。

  • 用文本文件编辑文本的时候,从文件读取的UTF-8/GBK字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:

技术分享图片

字节

字节是二进制数据的单位。一个字节通常8位长。但是,一些老型号计算机结构使用不同的长度。为了避免混乱,在大多数国际文献中,使用词代替byte。

在多数的计算机系统中,一个字节是一个8位长的数据单位,大多数的计算机用一个字节表示一个字符、数字或其他字符。一个字节也可以表示一系列二进制位。

字节通常简写为“B”,而位通常简写为小写“b”,计算机存储器的大小通常用字节来表示。

字节与bit

数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。

  • ASCII编码:一个英文字母(不分大小写)占一个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。换算为十进制,最小值-128,最大值127。如一个ASCII码就是一个字节。
  • GBK编码: 一个英文字母占一个字节空间,一个中文字符占两个字节空间。
  • UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节
  • Unicode编码:一个字符占四个字节
  • 换算:

    1byte = 8bit

    1KB(KiB) = 1024byte

    1MB(MiB) = 1024KB

    1GB(GiB) = 1024MB

    1TB(TiB) = 1024GB

文本编码

原文:https://www.cnblogs.com/jonnyleung/p/11579977.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!