1. 程式人生 > >Unicode字符集的由來

Unicode字符集的由來

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:

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