美文网首页
浅析字符编码发展

浅析字符编码发展

作者: 临安linan | 来源:发表于2019-08-14 01:15 被阅读0次

字符编码的发展历史

1. 存储英文数字标点的ASCII

最开始普遍使用的是ASCII码:
它把所有的空格、标点符号、数字、大小写字母分别用连续的字节状态表示,一直编到了第127号
后来, 128-255号都被扩展完了, 没法扩展了

2. 中国发明的汉字字符编码方案

从GB2312到GBK到GB18030, 总算容纳了所有汉字, 但是这个时候各个国家都像中国这样自己搞一套编码, 谁也不认识谁

3. 包罗万象的Unicode字符集

unicode是字符集, 是字符的集合, 不同于编码方案
unicode目标是容纳世界上所有的字符, 统一用至少两个字节表示字符
在unicode中中文也是两个字节表示的
缺点也很明显:

  1. 原本ASCII码只需八位表示, unicode直接弄成16位, 高八位闲置为0, 导致文本大小过大

  2. unicode表示的字符可能是2个字节, 也可能是3个字节, 计算机怎么分的清楚到底是几字节?

4. 可变长度的UTF-8编码

UTF-8采取8位传输数据, 它是一种变长的编码方式。
它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示
UTF-8编码规则:

0xxxxxxx  // 单字节, 第一位固定为0
110xxxxx 10xxxxxx  // 多字节, 第一个字节前面的1的个数表示字节数, 后面固定一个0, 后面的字节开头固定为10
1110xxxx 10xxxxxx 10xxxxxx
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

可见, UTF-8采取了标志位, 提高了编码的可读性
注意: 在unicode中一个汉字两个字节, 但在UTF-8中一个汉字三个字节, 他们间的转换需要一定的算法规则
从Unicode字符集到UTF-8, 英文短了, 但每个汉字却多用了一个字节, 这也是到今天GBK等编码方案还能沿用的重要原因(存储汉字小啊())

JavaScript中的编码函数:
encodeURI: 它输出字符的UTF-8编码, 并且在每个字节前加上%
decodeURI: 与encodeURI对应, 用作解码

相关文章

  • 浅析字符编码发展

    字符编码的发展历史 1. 存储英文数字标点的ASCII 最开始普遍使用的是ASCII码:它把所有的空格、标点符号、...

  • 浅析字符编码

    计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作...

  • java学习笔记#4-File

    编码浅析 编码格式实例 文本文件就是字符序列,它可以是任意编码,中文机器上创建文本文件时,默认ansi编码。不同的...

  • 编程笔记 | 字符编码、Python字符串以及常见异常

    在讲 Python 字符串之前先了解一下常用的字符编码 常用三种字符编码发展 常用的三种字符编码与特点: ASCI...

  • 浅析字符集&编码

    工作中系统的乱码问题经常让人头疼,看到utf-8,GBK等字样觉得很熟悉,却一直对这些概念一知半解。所以今天简...

  • 字符串编码浅析

    title: 字符串编码理解date: 2019-10-23time: 11:09:00categories: J...

  • 跟着廖老师学Python(6):Python基础2-数据类型

    续:第(5)节本文所有引用均来自廖雪峰老师的网站。转载请说明出处。 3.字符编码 ·字符编码 发展历史: ASCI...

  • 编码问题

    文件的编码 编码的发展简史: 美国最早定制了适合美国国内使用的字符编码规则,即ASCII码(American St...

  • 部分知识点

    chr(编码值) - 将字符编码转换成字符 ord(字符) - 获取字符对应的编码值 可以将字符编码放到字符串中便...

  • 第二节-初识python和字符编码

    内容编码 字符编码的发展 ascii (只能识别英文) 8位 = 01010101 2**8(2的8次方)= ...

网友评论

      本文标题:浅析字符编码发展

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