国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

編碼解碼UNICODE

baukh789 / 2164人閱讀

摘要:其他編碼的可以參考,,的選擇不考慮隨機訪問,,查找第個字符時間復雜度隨機訪問,只用之內的字符,,時間復雜度隨機訪問,超過了,詳解編碼

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

相關文章

  • Python2.x 字符編碼終極指南

    摘要:值得注意的是,有的編碼方案不一定能表示某些信息,這時編碼就會失敗,比如就不能用來表示中文。數組的每一項是一個字節,用來表示。所以對于字符串來說,其長度等于編碼后字節的長度。所以,讓來編碼解碼中文,就超出了其能力范圍。 在人機交互之字符編碼 一文中對字符編碼進行了詳細的討論,并通過一些簡單的小程序驗證了我們對于字符編碼的認識。但僅了解這篇文章的內容,并不能幫我們在日常編程中躲過一些字符編...

    Amio 評論0 收藏0
  • unicode之痛【精校版】

    摘要:之痛原文地址譯者校正實用編程指南這是我在所做的演講。事實一和二共同造成了計算機設備結構與世界人類需求的一個沖突。就是為了解決之前的老的字符集問題。值意味著,失敗時將會返回一個標準的替代字符。將使用進行了解碼。 Unicode之痛原文地址: http://nedbatchelder.com/text...譯者: yudun1989 校正: sicklife實用Unicode編程指南這是...

    zombieda 評論0 收藏0
  • PyTips 0x09 - Python 中 Unicode 的正確用法

    摘要:只包含了個基本拉丁字母阿拉伯數目字和英式標點符號一共個字符,因此只需要不占滿一個字節就可以存儲,而則涵蓋的數據除了視覺上的字形編碼方法標準的字符編碼外,還包含了字符特性,如大小寫字母,共可包含個字符,而到現在只填充了其中的個位置。 項目地址:https://git.io/pytips 0x07 和 0x08 分別介紹了 Python 中的字符串類型(str)和字節類型(byte),以及...

    shenhualong 評論0 收藏0
  • python編碼的意義

    摘要:而他們的中文釋義,就是對新手的最大陷阱編碼。而碼,也就是美國信息交換標準碼,年發布,位字符編碼中影響最大的一種。 編碼,還是編碼! python2的直鉤——編碼異常 當你用python打開一篇中文文檔,準備讀取里面的數據開始實驗...當你處理好你的數據,打算打印出易于閱讀的結果給boss檢查...甚至當你剛剛開始編寫自己的代碼,就寫了一句話... text = 什么鬼 只要你開始運行自...

    e10101 評論0 收藏0
  • 關于python的編解碼(decode, encode)

    摘要:,,等屬于不同的字符集,轉換編碼就是在它們中的任意兩者間進行。一般個人用的電腦上控制臺基本上都是編碼的,但運維的機器上基本全是,中文的時候就會有酸爽的問題。 總結總結,本文僅適用于python2.x 默認編碼與開頭聲明 首先是開頭的地方聲明編碼 # coding: utf8 這個東西的用處是聲明文件編碼為utf8(要寫在前兩行內),不然文件里如果有中文,比如 a = 美麗 b = u美...

    shusen 評論0 收藏0

發表評論

0條評論

baukh789

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<