Unicode字符集的由來

本文起源於行走在陽光下的那些不可見字符中的知識邊界,由於涉及到字符相關,而我也不能很清楚的描述Unicode的前世此生,故而有了此文。程序員

計算機技術的革命極大地方便了人們的工做與生活,使得人類生活前進了一大步,但是在計算機發展進程中,世界各地因爲語言文字不一,有過那麼一段混亂難受的日子...算法

字符世界的起源

因爲計算機在美國誕生,所以字符集最初也只考慮了美國人當時的需求,誕生了你們熟知的ASCII(American Standard Code for Information Interchange),它由26個基本拉丁字母、阿拉伯數字、英式標點符號和一些控制字符組成。 ASCII表編碼

隨着世界的發展,各國人民也開始接觸計算機,然而各國人民也有本身獨特的文化需求,最開始的字符集知足不了人們日益增加的需求,各國出現了不一樣的字符集標準,好比國內早期的Java程序員熟知的GBK、GB18030等,我曾經實習的時候接觸的用JSP的老系統裏就有相關的編碼設定,若是用錯誤編碼設定了文檔解析格式,可能就會看到亂碼,再想一想世界上那麼多個國家,會有多少編碼標準啊,這也是互聯網早期亂碼比較多的緣由吧。.net

各類編碼的字符互不兼容,相互之間的通訊可能因爲編碼的不一樣,而致使對方看到的是亂碼,這就如中國歷史中的大秦統一文字和度量單位以前的華夏文明同樣,語言不通、貨幣不通,交流困難。時間的車輪滾滾向前,推進着歷史的發展,因而Unicode(Universal Coded Character Set)出現了,它對世界上大部分的文字系統進行了整理、編碼,使得計算機可以以更簡單的方式來呈現和處理字符,它的目的就是爲全部的字符提供統一的編碼,任何的平臺、系統、設備、應用或者語言都能兼容且無風險使用。設計

至今Unicode仍在不斷的增修,當前最新版本爲2019年5月公佈的12.1,包含137994個字符,不只包括當今世界上150種語言模型和歷史性的手寫碼和符號,還包括多種符號集與表情符號。code

Unicode

九層之臺,起於累土。這樣世界性的標準毫不是一蹴而就,必有其堅實的基礎,設計原則就是Unicode的一大基礎,在《The Unicode Standard Version 6.2 - Core Specification》有提到Unicode的設計原則,Unicode Design Principlesorm

咱們熟知的UTF-8實際上是Unicode的一種實現方式,即Unicode 轉換格式(Unicode Transform Format),是一種爲了減小傳輸數據的大小而設計的變長編碼,每一個字符使用1/2/3字節按照必定算法進行轉換識別。此外,Unicode的實現方式還包括UTF-七、UTF-1六、UTF-3二、punycode、GB18030等。blog

strawberry

總的來講,Unicode於亂世出生逐漸成爲標準統一字符世界,至今仍持續發展,造福了社會,極大的提高了生產效率,雖未與ASCII並列與IEEE里程碑,但也是計算機科學史中一件舉足輕重的大事記。進程

本次探索到此結束,全文本着追溯Unicode是什麼爲何產生等問題,進行了一系列追尋,大體理清了Unicode的一些「前世此生」,基本對Unicode可以有個大概的認知,須要更加深刻的探索的小夥伴能夠留言一塊兒探討~ip

冬至快樂哦~

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
相關文章
相關標籤/搜索