[oeasy]python0128_unicode_字符集_character_set_八卦_星座
unicode
回憶上次內(nèi)容
中國的簡體和繁體漢字
字符數(shù)量都超級大
彼此還認(rèn)對方為亂碼
如果有一種編碼所有的字符都能編進去就好了
中日韓(CJK)
歐洲拼音
梵文
阿拉伯文
盧恩字符
等等等都包括進去

能有么???
回顧歷史
計算機中只有
0
和1
并且是存儲在字節(jié)里的
原來只能表示和處理數(shù)字
字符無法處理
后來某些二進制數(shù)固定下來代表某個字符
形成了字符集
從博多碼(5bits)到 BCDIC(6bits)
再到 EBCDIC碼(8bits) 最后統(tǒng)一于
ascii

但是 各國家和地區(qū)
都有 自己的文字
這一領(lǐng)域 沒有 統(tǒng)一的標(biāo)準(zhǔn)
所以每個國家和地區(qū)
都制定自己的編碼標(biāo)準(zhǔn)
想要同時顯示 法語字符和西里爾字符 是不可能的
同樣字節(jié)狀態(tài) 在不同編碼格式里 代表不同的字符
都認(rèn)為對方是亂碼
彼此不兼容
編碼方式有上百種之多
互為亂碼
分久必合
無法解決的問題背后 可能是機會
1980 年代
拉丁
阿拉伯
希伯來
希臘
西里爾
中日韓字符
能融合多語言
Xerox(施樂公司) 在 開始嘗試一種編碼
Xerox 字符集包括

這個字符集 1988 年進化為 unicode
uni的意思是一
uni
uni 來自于
unique
unified
universal
unicorn
university
uniform
unit
union

uni-開頭的單詞都有這個特點
universe
universe
繞著一個東西轉(zhuǎn)的
從一轉(zhuǎn)化而來的
旋轉(zhuǎn)
一
uni
verse
universe
一生二 二生三 三生萬物

后來日語
將universe翻譯成宇宙
宇宙一詞 中文以前就有
上下四方曰宇
古往今來曰宙
得一
這個詞頭計算機領(lǐng)域也有很多很牛的單詞
unit、unix、unity、unicode
這名字得一了啊
少則得,多則惑,是以圣人抱一為天下式
天得一以清,地得一以寧,神得一以靈,谷得一以盈,萬物得一以生,侯王得一而以為正
這個版本叫做 unicode88
是 16 位的 unicode
1989 年
第 2 卷發(fā)布
這里面包含了漢語字符
unicode 第一卷發(fā)布
Unicode 委員會在加州成立
微軟和 sun 都來了
Unicode 這個工作組來了一些從大廠來的人
1991/1/3 日
1991 年 8 月
1992 年 6 月
unicode 委員會 形成
Adobe, Apple, Facebook, Google, IBM, Microsoft, Netflix 和 SAP SE 等公司的工程師加入

字符的全球標(biāo)準(zhǔn)化開始了
基礎(chǔ)字符
ascii 還是牢牢占據(jù)著 0-127 這最關(guān)鍵的位置
由 iso-8859-1 西歐、北歐字符集進化而來
緊挨著 ascii 的字符的就是 Latin-1

這其實也 標(biāo)識出unicode的 編碼排序規(guī)則
分類和收錄
以書寫系統(tǒng)為單位
各種拼音文字
比如盧恩字符

再去捋一捋
拉丁字符進化過程吧
拉丁字符進化史
發(fā)音詞義埃及圣書體楔形寫法希臘字符拉丁字符alpha牛????ΑαAabeta房子????ΒβBbgīml棍子????ΓγCc,Ggdālet門或者魚?????ΔδDd
去看看他們的序號

希臘字符比較好找
序號較小
不過希臘字符之前只有大寫字母
小寫字母怎么來的呢?
小寫字母

手寫畫風(fēng)固定下來后
又被印刷術(shù) 再次固定

能找到埃及文字的序號嗎?
埃及文字
unicode 確實給埃及文字排了序號
而且目前終端沒有字型支持
但是序號很大

字型文件 實現(xiàn)難度不小
實際需求 也不確定
同為 拼音文字的不同書寫系統(tǒng)
會是一個序號嗎?
可能會用到 長得一樣的字符
書寫系統(tǒng)
英文字母、拉丁字母、西里爾文字母
都源自希臘文字母 Omicron
不同的書寫系統(tǒng)
可能會長相一樣的字母
但對應(yīng)著不同的序號
雖然字形一模一樣
希臘文字母
英文字母
西里爾字母
但是屬于三個書寫系統(tǒng)
所以 有不同的序號
持續(xù)進化
每個版本都會有些變化
整個編碼區(qū)域分成若干個 blocks
新版本對于這些 blocks 里面的字符有所增加
十二星座
除了字符之外還有很多符號
比如十二個星座
集裝箱 標(biāo)準(zhǔn)化一旦開始
就會 反過來 約束火車輪船飛機
你要想 加入這個交流的行列
從遵守現(xiàn)有的規(guī)則開始
必須先了解相應(yīng)的接口
unicode時代
新編碼unicode的時代來了
他會把一切字符吸收進去
同一個文檔
可以既有中文
又有日文
還有韓文
一切字符都能正常顯示
陰陽太極
易有太極
??
是生兩儀
? 陽 (U+268A) ? 陰 (U+268B)
兩儀生四象
?(太陽,U+268C)、?(少陰,U+268D)、?(少陽,U+268E)、?(太陰,U+268F)
八卦
四象生八卦
? ? ? ? ? ? ? ?
如果把
? 陽 (U+268A)當(dāng)做1
? 陰 (U+268B)當(dāng)做0
順序是逆序(遞減)
從外而內(nèi)
天
澤
水
雷
風(fēng)
火
山
地
八卦有了
可以重卦么?
重卦

八八六十四卦
看起來都可以玩算卦了
還能做什么呢?
亂來
來隨便試一個
print("\u9999")
看看這是什么字?
中日韓字符
中文編碼原來是 gbk
unicode 現(xiàn)在unicode把中日韓(CJK)當(dāng)成一組
排序是CJK
位置是unicode.org下方的code chart中找到
當(dāng)然關(guān)于排序各有各的排法
中國是中日韓
日本是日中韓
韓國是韓中日
unicode組織的CJK顯然綜合了東亞文化圈的排名
我仿佛聽到卡吉瑪
所在位置
象形文字?jǐn)?shù)量確實是拼音文字沒有辦法比的
他們聽到我們有兩萬個字母的時候都傻了
融合而來
unicode中的文字將
中國漢字
朝鮮漢字
日本漢字
綜合起來
得到一個漢字
那如果有很多異體字怎么辦?
回字的幾種寫法
這些都是異體字
或者叫做通假字
在計算機里是如何的呢?
茴香豆
在0x4e00到0x9fff這個范圍內(nèi)
基本一個漢字就只有一種寫法
總結(jié)
字符集
從博多碼
到
ascii
再到
8859
各自割據(jù)
如何把世界上各種字符統(tǒng)進行編碼
unicode
順勢而生不斷進化不過字符總量超過了
65536
每個漢字都有位置
所有漢字里面第一個漢字是什么呢?
我們下次再說!??
藍(lán)橋->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython