Unicode字符集的由来菜鸟教程网_字符指南教程

本文起源于行走在阳光下的那些不可见字符中的知识边界,因为涉及到字符相关,而我也不能很清楚的描述Unicode的前世今生,故而有了此文。计算机技术的革命极大地方便了人们的工作与生活,使得人类生活前进了一大步,可是在计算机发展进程中,世界各地由于语言文字不一,有过那么一段混乱难受的日子…字符世界的起源由于计算机在美国诞生,因此字符集最初也只考虑了美国人当时的

Unicode字符集的由来菜鸟教程网

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

Unicode字符集的由来菜鸟教程网_字符指南教程

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

字符世界的起源

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

Unicode字符集的由来菜鸟教程网_字符指南教程

随着世界的发展,各国人民也开始接触计算机,然而各国人民也有自己独特的文化需求,最开始的字符集满足不了人们日益增长的需求,各国出现了不同的字符集标准,比如国内早期的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字符集的由来菜鸟教程网_字符指南教程

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

Unicode字符集的由来菜鸟教程网_字符指南教程

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

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

ps: 及时总结,静心沉淀;如风少年,砥砺前行。

海计划公众号
(0)
上一篇 2020/03/29 01:45
下一篇 2020/03/29 01:45

您可能感兴趣的内容

  • 程序员必须知道的10大基础实用算法及其讲解菜鸟教程下载_算法使用指南

    算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide a

    2020/04/06
  • javascript是高级语言吗?入门攻略_语言入门教程

    javascript是高级语言,与C系列以及java类的高级语言的区别是强弱类型之分,javascript是一门弱类型语言。计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。高级语言:高级语言(High-level programming language)相对于机器语言(machine language,是一种指令集的体系。在这

    2020/03/22
  • Js Math对象 abs() 方法 使用帮助_Math入门指南

    语法Math.abs(x) // 必需。必须是一个数值。示例
    document.write(Math.abs(7.25) + “
    “)
    document.write(Math.abs(-7.25) + “
    “)
    document.write(Math.abs(7.25-10))

    2020/03/23
  • 程序员常用英语单词汇总基础知识入门_程序员基础知识入门

    第一节 void:[vɔid] 空的 main:[mein] 主要的 class:[klɑ:s] 类 system:[‘sistəm] 系统 out:[aut] 出,外,输出 print:[print ] 打印 public[‘pʌblik] 公共的,公用的 static[‘stætik] 静的;静态的;静止的 oracle: [ˈɔ:rəkl] 甲骨文公司

    2020/03/31
  • debug使用攻略_一款node.js打印调试日志模块

    debug使用攻略 官方网址:https://github.com/visionmedia/debug GitHub:https://github.com/visionmedia/…

    2020/03/06
  • js执行机制小白常识_机制教程视频

    js是单线程的,为什么可以执行异步操作呢?这归结与浏览器(js的宿主环境)通过某种方式使得js具备了异步的属性。 区分进程和线程:进程:正在运行中的应用程序。每个进程都自己独立的内存空间。例如:打开的浏览器就是一个进程。线程:进程的子集,是独立的。线程在共享的内存空间中运行。浏览器是多进程的。如下图:并且每打开一个页面就创建了一个独立的进程。进程内有自己的多

    2020/03/23
  • PhoneGap小白攻略_一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台

    PhoneGap小白攻略 官方网址:https://phonegap.com/ GitHub:https://github.com/phonegap/ 简介描述:一个采用HTML,…

    2020/03/06
  • Promise原理探究及实现使用帮助_Promise教程视频

    前言作为ES6处理异步操作的新规范,Promise一经出现就广受欢迎。面试中也是如此,当然此时对前端的要求就不仅仅局限会用这个阶段了。下面就一起看下Promise相关的内容。Promise用法及实现在开始之前,还是简单回顾下Promise是什么以及怎么用,直接上来谈实现有点空中花园的感觉。(下面示例参考自阮大佬es6 Promis,)定义Promise 是异

    2020/03/29
  • Kotlin 基础入门 Node.js 搭建教程小白攻略_教程

    Kotlin是JetBrains推出的一款语言, 相比Java有更简洁的语法, 能编译为Java Class, 也能编译为JavaScript
    Node.js则是可以运行在服务端的JavaScript, 这里把二者结合, 搭建一个用Kotlin编写的服务端应用创建打开Idea 创建一个 Kotlin(JavaScript) 项目编写一个测试文件, 检查是否可

    2020/04/03
  • package.json文件介绍使用帮助_json基础知识

    1. 概述每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息。npm install命令根据这个配置文件,自动下载所需的模块。2.字段介绍{“name”: “模块名称”,”version”: “0.0.1”, // 模块版本”author”: “作者”,”description”: “模块描述”

    2020/03/29
  • ui-router小白基础_一个AngularJS路由模块

    ui-router小白基础 官方网址:http://ui-router.github.io/ GitHub:https://github.com/angular-ui/ui-rou…

    2020/03/06
  • 小程序保存图片到相册功能实现入门基础教程_小程序基础指南

    项目中有个保存二维码到相册的功能,所以涉及到用户是否授权相册权限的问题。废话不多说,直接上干货…功能逻辑:先检查用户请求过的权限中是否允许”保存到相册”权限,如果没有请求过这个权限,应该向用户发起授权请求(弹窗授权),如果请求过这个权限,并且授权了,那就保存图片,显示保存成功;如果请求过,但是是拒绝的,就跳到设置页,重新授权。上代码:<view bind

    2020/04/03
  • 当我们git merge的时候到底在merge什么?指南教程_git指南攻略

    序言我在上大学的时候并没有接触过VCS(版本控制系统)。虽然曾经在Google Code发布过去项目,但是以压缩包的形式发布的;与室友合作开发计算机网络这门课的课程设计时,也没有用上。直到入职第一家公司后才真正开始使用,当时用的是Git,此后也始终没用过其它的VCS——SVN仅仅耳闻未曾使用——转眼间已经用了六年多的Git了。尽管日常使用问题不大,但对于Gi

    2020/03/23
  • 欠薪的公司,不要做任何犹豫!小白基础_公司使用帮助

    这段时间,有星球球友向我提问,说公司欠薪 3 个月了,问我该怎么办?要不要离职?但是老板又说马上有融资,想着是不是再等等?我原来以为关注我的读者欠薪只是个别现象,没想到这个提问下面留言有一大堆人都有过欠薪经历,包括公众号之前的留言,也有不少人表示有类似经历,真的超出我的想象,今天姑且单独写篇文章给大家。先说明我的观点,我的态度很坚决,当一家公司出现欠薪了,不

    2020/04/05
  • ACE Editor在线代码编辑器的API使用文档入门基础_api菜鸟教程下载

    ACE 是一个开源的、独立的、基于浏览器的代码编辑器,可以嵌入到任何web页面或JavaScript应用程序中。ACE支持超过60种语言语法高亮,并能够处理代码多达400万行的大型文档。ACE开发团队称,ACE在性能和功能上可以媲美本地代码编辑器(如Sublime Text、TextMate和Vim等)。ACE是Mozilla Skywriter(以前称为B

    2020/03/24
  • 何时使用 Map 来代替普通的 JS 对象入门基础教程_map小白攻略

    何时使用 Map 来代替普通的 JS 对象入门基础教程 JS 普通对象 {key: ‘value’} 用于存放结构化数据。但有一件事我觉…

    2020/03/20