Unicode字元集的由來
本文起源于行走在陽光下的那些不可見字元中的知識邊界,因為涉及到字元相關,而我也不能很清楚的描述Unicode的前世今生,故而有了此文。

計算機技術的革命極大地友善了人們的工作與生活,使得人類生活前進了一大步,可是在計算機發展程序中,世界各地由于語言文字不一,有過那麼一段混亂難受的日子...
字元世界的起源
由于計算機在美國誕生,是以字元集最初也隻考慮了美國人當時的需求,誕生了大家熟知的ASCII(American Standard Code for Information Interchange),它由26個基本拉丁字母、阿拉伯數字、英式标點符号和一些控制字元組成。
随着世界的發展,各國人民也開始接觸計算機,然而各國人民也有自己獨特的文化需求,最開始的字元集滿足不了人們日益增長的需求,各國出現了不同的字元集标準,比如國内早期的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的設計原則,
我們熟知的UTF-8其實是Unicode的一種實作方式,即Unicode 轉換格式(Unicode Transform Format),是一種為了減少傳輸資料的大小而設計的變長編碼,每個字元使用1/2/3位元組按照一定算法進行轉換識别。此外,Unicode的實作方式還包括UTF-7、UTF-16、UTF-32、punycode、GB18030等。
總的來說,Unicode于亂世出生逐漸成為标準統一字元世界,至今仍持續發展,造福了社會,極大的提升了生産效率,雖未與ASCII并列與IEEE裡程碑,但也是計算機科學史中一件舉足輕重的大事記。
本次探索到此結束,全文本着追溯Unicode是什麼為什麼産生等問題,進行了一系列追尋,大緻理清了Unicode的一些“前世今生”,基本對Unicode能夠有個大概的認知,需要更加深入的探索的小夥伴可以留言一起探讨~
ps: 及時總結,靜心沉澱;如風少年,砥砺前行。
冬至快樂~
如想了解更多,請移步我的部落格
歡迎關注我的公衆号 “和F君一起xx”
reference:
- Unicode Zh
- Unicode En
- Unicode Charts Index
- Unicode Character Database
- IEEE裡程碑清單
- ENIAC
- ASCII
- Unicode Script