文档章节

Unicode字符集的由来

w
 wfsovereign
发布于 2019/12/22 21:49
字数 1111
阅读 4031
收藏 23

本文起源于行走在阳光下的那些不可见字符中的知识边界,因为涉及到字符相关,而我也不能很清楚的描述Unicode的前世今生,故而有了此文。

计算机技术的革命极大地方便了人们的工作与生活,使得人类生活前进了一大步,可是在计算机发展进程中,世界各地由于语言文字不一,有过那么一段混乱难受的日子...

字符世界的起源

由于计算机在美国诞生,因此字符集最初也只考虑了美国人当时的需求,诞生了大家熟知的ASCII(American Standard Code for Information Interchange),它由26个基本拉丁字母、阿拉伯数字、英式标点符号和一些控制字符组成。 ASCII表

随着世界的发展,各国人民也开始接触计算机,然而各国人民也有自己独特的文化需求,最开始的字符集满足不了人们日益增长的需求,各国出现了不同的字符集标准,比如国内早期的Java程序员熟知的GBK、GB18030等,我曾经实习的时候接触的用JSP的老系统里就有相关的编码设定,如果用错误编码设定了文档解析格式,可能就会看到乱码,再想想世界上那么多个国家,会有多少编码标准啊,这也是互联网早期乱码比较多的原因吧。

各种编码的字符互不兼容,相互之间的通信可能由于编码的不同,而导致对方看到的是乱码,这就如中国历史中的大秦统一文字和度量单位之前的华夏文明一样,语言不通、货币不通,交流困难。时间的车轮滚滚向前,推动着历史的发展,于是Unicode(Universal Coded Character Set)出现了,它对世界上大部分的文字系统进行了整理、编码,使得计算机能够以更简单的方式来呈现和处理字符,它的目的就是为所有的字符提供统一的编码,任何的平台、系统、设备、应用或者语言都能兼容且无风险使用。

至今Unicode仍在不断的增修,当前最新版本为2019年5月公布的12.1,包含137994个字符,不仅包括当今世界上150种语言模型和历史性的手写码和符号,还包括多种符号集与表情符号。

Unicode

九层之台,起于累土。这样世界性的标准绝不是一蹴而就,必有其坚实的基础,设计原则就是Unicode的一大基础,在《The Unicode Standard Version 6.2 - Core Specification》有提到Unicode的设计原则,Unicode Design Principles

我们熟知的UTF-8其实是Unicode的一种实现方式,即Unicode 转换格式(Unicode Transform Format),是一种为了减少传输数据的大小而设计的变长编码,每个字符使用1/2/3字节按照一定算法进行转换识别。此外,Unicode的实现方式还包括UTF-7、UTF-16、UTF-32、punycode、GB18030等。

strawberry

总的来说,Unicode于乱世出生逐渐成为标准统一字符世界,至今仍持续发展,造福了社会,极大的提升了生产效率,虽未与ASCII并列与IEEE里程碑,但也是计算机科学史中一件举足轻重的大事记。

本次探索到此结束,全文本着追溯Unicode是什么为什么产生等问题,进行了一系列追寻,大致理清了Unicode的一些“前世今生”,基本对Unicode能够有个大概的认知,需要更加深入的探索的小伙伴可以留言一起探讨~

冬至快乐哦~

ps: 及时总结,静心沉淀;如风少年,砥砺前行。 欢迎关注我的公众号 "和F君一起xx"

reference:

  1. Unicode Zh
  2. Unicode En
  3. Unicode Charts Index
  4. Unicode Character Database
  5. IEEE里程碑列表
  6. ENIAC
  7. ASCII
  8. Unicode Script

© 著作权归作者所有

w
粉丝 2
博文 3
码字总数 4218
作品 0
成都
私信 提问
加载中

评论(7)

mr_chip
mr_chip
Intel和IBM一起哭晕在厕所😂😂😂
栍椧
栍椧
都没提到两家组织、为什么会有高低位替代区。
w
wfsovereign 博主
哈哈 上面的朋友赶紧没看过瘾的样子😄,后面我多写点咯
c
crystalsis
你这不是由来,就是个简介
开源中国首席罗纳尔多
开源中国首席罗纳尔多
没了?
阿信sxq
阿信sxq
这么快就结束了?
Roshomon
Roshomon
同感
Unicode,GBK和UTF8

前言 其实这是个老生常谈的问题了,相信大家在第一次遇到Unicode编码问题时,都会在网上搜索一通, 找到几个解释,虽然有点杂乱,但还是感觉自己明白了些什么,然后就继续忙别的事情. 而我之所以就...

孟飞阳
2016/07/22
346
0
好程序员web前端分享HTML字符集

如需正确地显示 HTML 页面,浏览器必须知道使用何种字符集。 万维网早期使用的字符集是 ASCII。ASCII 支持 0-9 的数字,大写和小写英文字母表,以及一些特殊字符。 由于很多国家使用的字符并...

好程序员IT
2019/05/14
7
0
各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)

一直对字符的各种编码方式懵懵懂懂,什么ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们。Let's go! 很久很久以前,有一群...

scofi06
2010/09/02
315
3
字符集与编码(一)——charset vs encoding

注:由于两边同步的麻烦,更多更改及调整可参考我的网站:xiaogd.net 上的字符集编码与乱码系列,已将字符集编码系列与乱码探源系列合并,更新及勘误等不再更新到这边。 许多时候,字符集与编...

国栋
2014/08/19
6K
18
VS中字符集的Unicode和多字节字符集的区别

VS中字符集的Unicode和多字节字符集的用处,注意是 用处 所以不赘述具体编码方式。网上一大片。 ANSI编码(使用""包裹) Unicode编码(使用L""包裹) ------------------------------------...

LoSingSang
2019/02/21
23
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 谨以此文怀念逝去的人

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 今天没歌曲 手机党少年们想听歌,请使劲儿戳(这里) 今天是周六, 刚想开始写乱弹的时候, 翻到了巴叔新建的话题上, @ 巴拉迪维:宏哥,一路...

小小编辑
33分钟前
9
0
判断php变量是否定义,是否为空,是否为真的一览表

使用 PHP 函数对变量 $x 进行比较 表达式 gettype() empty() is_null() isset() boolean : if($x) $x = ""; string TRUE FALSE TRUE FALSE $x = null; NULL TRUE TRUE FALSE FALSE var $x; N......

Grayk
今天
12
0
服务器监控

1. 服务器监控内容有哪些? 答: 主要有服务监控 和 流量监控 2. 监控重点是? 答: 是 磁盘 和 流量,cpu是浮动的,意义不大 3. 怎样 实现 监控? 答:将 服务器 分为:监控者 和 被监管协议...

杨凯123
昨天
242
0
Apollo开发指南

一、准备工作 二、本地启动 2.1 Apollo Config Service和Apollo Admin Service 2.2 Apollo-Portal 2.3 Java样例客户端启动 2.4 .Net样例客户端启动 三、开发 3.1 Portal 实现用户登录功能 3....

Ciet
昨天
307
0
英文词汇 计算机网络中的专业英语单词及其缩写

学习计算机网络时,会阅读相关的专业文献。对于文献中经常出现的缩写形式的专业名词,做了一些积累。现于此博文中做个简单的分享,希望能对后来人有所帮助,平稳地入门计算机网络。 注:博文...

志成就
昨天
178
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部