摘要:其他編碼的可以參考,,的選擇不考慮隨機訪問,,查找第個字符時間復雜度隨機訪問,只用之內的字符,,時間復雜度隨機訪問,超過了,詳解編碼
1.字符集vs字符編碼,編碼&解碼
Character----->code point----->bytes 前兩者字符集的關系,可以統稱為codepoint;從codepoint到在計算機上的存儲形式,稱為編碼,反過來稱為解碼; 字符集:單個符號(character)對應一個無符號數字(通常16進制表示,稱為代碼點code point),這種對應關系稱為字符集 字符編碼:代碼點與二進制的對應關系稱為字符編碼,內存或磁盤存儲數據的形式為二進制
2.歷史:UCS-2(兩個字節定長編碼)---USC-4,UTF-32(四個字節定長編碼)----UTF-16------UTF-8
我國發布的:GB2312---GBK(GB2312的擴展)
3.GB2312:兩個字節表示字符碼
兼容ASCII 一個字節中的1位區分,1表示GB2312字符集,0表示ASCII字符集 最多可以表示94*94個字符,留有一部分擴展 編碼主要是EUC-CN,兼容ASCII
4.Unicode:4個字節表示
UTF-8,UTF-16,變長編碼 UTF-16,兩個字節變長編碼(2,4) UTF-8,(1,2,3,4) UTF-32,定長編碼(4字節)
5.BMP:
Unicode 標識符通過一個明確的名字和一個整數來作為它的碼位(code point).比如,“?” 字符的碼位可以用“版權標志”和U+00A9(0xA9,也可以寫作十進制 169)來表示。 Unicode 字符分為 17 組平面,每個平面擁有 2^16 (65,536)個碼位.有一些碼位沒有分配字符,也有一些碼位被保留,成為私有的,也有一些碼位是永遠被保留的,作為無字符的標志。每一個碼位都可以用 16 進制 xy0000 到 xyFFFF 來表示,這里的 xy 是表示一個 16 進制的值,從 00 到 10。 這第一個位置(當 xy 是 00 的時候)被稱為 BMP (基本多文種平面, Basic Multilingual Plane)。它包含了最常用的碼位從 U+0000 到 U+FFFF。
6.JS的UTF-16(歷史遺留問題,JS選用UTF-16):http://developer.51cto.com/ar...
兩個字節為一個單元,LENGTH為1
7.BOM(BYTE ORDER MARK)
UTF-16 (BE) FE FF 254 255 big endian 大端 UTF-16 (LE) FF FE 255 254 little endian 小端 UTF-16 與 UTF-32 還有一個不明顯的缺點。我們知道不同的計算機存儲字節的順序是不一樣的,這也就意味著U+4E2D?在 UTF-16 可以保存為4E 2D,也可以保存成2D 4E,這取決于計算機是采用大端模式還是小端模式,UTF-32 的情況也類似。為了解決這個問題,引入了?BOM (Byte Order Mark),它是一特殊的不可見字符,位于文件的起始位置,標示該文件的字節序。對于 UTF-16 來說,BOM 為U+FEFF(FF 比 FE 大 1),如果 UTF-16 編碼的文件以FF FE開始,那么就意味著其字節序為小端模式,如果以FE FF開始,那么就是大端模式。 其他 UTF-* 編碼的 BOM 可以參考?Representations of byte order marks by encoding
8.UTF-8,UTF-16,UTF-32的選擇:
1)不考慮隨機訪問,UTF-8,查找第N個字符時間復雜度(O(N)) 2)隨機訪問,只用65535之內的字符,UTF-16,時間復雜度(O(1)) 3)隨機訪問,超過了65535,UTF-32,O(1)
9.詳解UTF-8編碼
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81157.html
摘要:值得注意的是,有的編碼方案不一定能表示某些信息,這時編碼就會失敗,比如就不能用來表示中文。數組的每一項是一個字節,用來表示。所以對于字符串來說,其長度等于編碼后字節的長度。所以,讓來編碼解碼中文,就超出了其能力范圍。 在人機交互之字符編碼 一文中對字符編碼進行了詳細的討論,并通過一些簡單的小程序驗證了我們對于字符編碼的認識。但僅了解這篇文章的內容,并不能幫我們在日常編程中躲過一些字符編...
摘要:之痛原文地址譯者校正實用編程指南這是我在所做的演講。事實一和二共同造成了計算機設備結構與世界人類需求的一個沖突。就是為了解決之前的老的字符集問題。值意味著,失敗時將會返回一個標準的替代字符。將使用進行了解碼。 Unicode之痛原文地址: http://nedbatchelder.com/text...譯者: yudun1989 校正: sicklife實用Unicode編程指南這是...
摘要:只包含了個基本拉丁字母阿拉伯數目字和英式標點符號一共個字符,因此只需要不占滿一個字節就可以存儲,而則涵蓋的數據除了視覺上的字形編碼方法標準的字符編碼外,還包含了字符特性,如大小寫字母,共可包含個字符,而到現在只填充了其中的個位置。 項目地址:https://git.io/pytips 0x07 和 0x08 分別介紹了 Python 中的字符串類型(str)和字節類型(byte),以及...
摘要:而他們的中文釋義,就是對新手的最大陷阱編碼。而碼,也就是美國信息交換標準碼,年發布,位字符編碼中影響最大的一種。 編碼,還是編碼! python2的直鉤——編碼異常 當你用python打開一篇中文文檔,準備讀取里面的數據開始實驗...當你處理好你的數據,打算打印出易于閱讀的結果給boss檢查...甚至當你剛剛開始編寫自己的代碼,就寫了一句話... text = 什么鬼 只要你開始運行自...
摘要:,,等屬于不同的字符集,轉換編碼就是在它們中的任意兩者間進行。一般個人用的電腦上控制臺基本上都是編碼的,但運維的機器上基本全是,中文的時候就會有酸爽的問題。 總結總結,本文僅適用于python2.x 默認編碼與開頭聲明 首先是開頭的地方聲明編碼 # coding: utf8 這個東西的用處是聲明文件編碼為utf8(要寫在前兩行內),不然文件里如果有中文,比如 a = 美麗 b = u美...
閱讀 3389·2023-04-26 01:46
閱讀 2913·2023-04-25 20:55
閱讀 5486·2021-09-22 14:57
閱讀 2980·2021-08-27 16:23
閱讀 1718·2019-08-30 14:02
閱讀 2068·2019-08-26 13:44
閱讀 652·2019-08-26 12:08
閱讀 2963·2019-08-26 11:47