國際標準 iso 10646 定義了 通用字符集 (universal character set, ucs). ucs 是所有其他字符集標準的乙個超集. 它保證與其他字符集是雙向相容的. 就是說, 如果你將任何文字字串翻譯到 ucs格式, 然後再翻譯回原編碼, 你不會丟失任何資訊.
在 unix 下使用 ucs-2 (或 ucs-4) 會導致非常嚴重的問題. 用這些編碼的字串會包含一些特殊的字元, 比如 」 或 『/', 它們在 檔名和其他 c 庫函式引數裡都有特別的含義. 另外, 大多數使用 ascii 檔案的 unix 下的工具, 如果不進行重大修改是無法讀取 16 位的字元的. 基於這些原因, 在檔名, 文字檔案, 環境變數等地方, ucs-2 不適合作為 unicode 的外部編碼.
ucs只是規定如何編碼,並沒有規定如何傳輸、儲存這個編碼。例如「漢」字的ucs編碼是6c49,我可以用4個ascii數字來傳輸、儲存這個編碼;也可以用utf-8編碼:3個連續的位元組e6 b1 89來表示它。
utf-8就是以8位為單元對ucs進行編碼。從ucs-2到utf-8的編碼方式如下:
ucs-2編碼(16進製制) utf-8 位元組流(二進位制)
0000 - 007f 0******x
0080 - 07ff 110***xx 10******
0800 - ffff 1110***x 10****** 10******
例如「漢」字的unicode編碼是6c49。6c49在0800-ffff之間,所以肯定要用3位元組模板了:1110***x 10****** 10******。將6c49寫成二進位制是:0110 1100 0100 1001, 用這個位元流依次代替模板中的x,得到:11100110 10110001 10001001,即e6 b1 89。
什麼是 PM,什麼是 SCM,和 NVM 什麼關係
自 近幾年,不論在學術界還是工業界,nvm 都是比較前沿的技術。其實 nvm 一詞並不新,是因為 pm 或稱 scm 這個與 nvm 有關的概念的出現,使得 nvm 這詞又 火 了一把。在近年的相關文獻中,nvm 也經常被和 pm scm 混用,讓人搞不清。本文捋一捋它們之間的關係。準確來說,nvm...
iso 8859 1和utf 8有什麼不同
charset iso 8859 1是西歐的編碼,代表說明 是採用的編碼是英文 charset gb2312代表說明 是採用的編碼是簡體中文 charset utf 8代表世界通用的語言編碼 charset big5代表說明 是採用的編碼是正體中文 charset euc kr代表說明 是採用的編碼...
什麼是IoC和DI?什麼是依賴注入和控制反轉?
這東西,簡單一點說得清楚就對了。di dependency injection,依賴注入 依賴注入的概念就是將物件交給spring容器託管,要用的時候由spring容器注入到類中去用,spring是容器通過xml來宣告物件,另外,spring中的dao 資料訪問物件 介面 和dao.impl imp...