編程基礎
硬件與軟件:計算機的運行原理(《編碼》)
最大的軟件:操作系統(tǒng)(維基百科)
自己寫軟件:數(shù)據(jù)結構 & 算法(《數(shù)據(jù)結構與算法分析》 排序算法)
多人寫軟件:軟件工程(代碼大全)
0和1的存儲
內(nèi)存中晶體管進行沖放電
1充電
0不充電
維持時間短需要不停充放電(2.1GHz)
數(shù)字的存儲
十進制->二進制
字符的存儲
ASCII碼
例:a->01100001(2)->61(16)
中文的存儲
GB2312中國國家標準簡體中文字符集
GBK字符集——擴展存儲生僻字、繁體字女责、日語漆枚、朝鮮語创译。
所有字符的存儲
將全球字符編號===》Unicode字符集
包括日韓文字抵知、藏文、盲文软族、楔形文字刷喜、顏文字、繪文字
2016年6月時立砸,Unicode 總共有 128237 個字符
高性價比存儲UNICODE
低性價比
a -> 00000000 00000000 00000000 01100001 = 0061(16)
你 -> 00000000 00000000 01001111 01100000 = 4F60(16)
高性價比 UTF-8
a -> 01100001
你-> 11100100 10111101 10100000
UTF-8是一種編碼方式掖疮,不是字符集。
00000000 00000000 00000000 01111111(2) 即 0000007F(16) 以下?
0XXXXXXX
00000000 00000000 00000111 11111111(2) 即 000007FF(16) 以下?
110XXXXX 10XXXXXX
00000000 00000000 11111111 11111111(2) 即 0000FFFF(16) 以下?
1110XXXX 10XXXXXX 10XXXXXX
00000000 00011111 11111111 11111111(2) 即 001FFFFF(16) 以下?
11110XXX 10XXXXXX 10XXXXXX 10XXXXXX
現(xiàn)實問題
字符集問題
一些古老的國產(chǎn)軟件使用GBK颗祝,因為當時沒有其他選擇浊闪。
編碼問題
JavaScript 使用了 Unicode 字符集恼布,但是沒有使用 UTF-8 編碼
JavaScript 用了 UCS-2 編碼!?
因為 1995 年 UTF-16 還沒被發(fā)明出來搁宾, JavaScript 也不想使用 UTF-32
http://www.ruanyifeng.com/blog/2014/12/unicode.html
ES5 無法表示 \uFFFF 之后的字符(如 \u1D306)折汞,某些情況下會出 bug