您的位置:首頁>正文

此篇包含了零基礎要學90%的知識點!Python很好學!真不來看看?

避免不了的是, 文件讀取問題:

假如我們讀取一個檔, 檔保存時, 使用的編碼格式, 決定了我們從檔讀取的內容的編碼格式, 例如, 我們從記事本新建一個文字檔test.txt, 編輯內容, 保存的時候注意, 編碼格式是可以選擇的, 例如我們可以選擇gb2312,那麼使用python讀取檔內容, 方式如下:

python給我們提供了一個包codecs進行檔的讀取, 這個包中的open()函數可以指定編碼的類型:

一個人自學很有可能因為動力不足而中途放棄,

可以嘗試加入一個或幾個適合自己的網路群體(QQ、 微信、 社區等),尋找志同道合的學習夥伴, 相互交流、相互促進.如果大家想要學習交流歡迎給我私信, 私信關鍵字: 01.02.03.04 都會得到不一樣的資料!系統堅持到關鍵字會自動發送。 分開發送!01或者02

UCS-2編碼(16進制)UTF-8 位元組流(二進位)0000 - 007F0xxxxxxx0080 - 07FF110xxxxx 10xxxxxx0800 - FFFF1110xxxx 10xxxxxx 10xxxxxx

0、big endian和little endian

big endian和little endian是CPU處理多位元組數的不同方式。 例如“漢”字的Unicode編碼是6C49。 那麼寫到檔裡時, 究竟是將6C寫在前面, 還是將49寫在前 面?如果將6C寫在前面, 就是big endian。 還是將49寫在前面, 就是little endian。

“endian”這個詞出自《格列佛遊記》。 小人國的內戰就源于吃雞蛋時是究竟從大頭(Big-Endian)敲開還是從小頭(Little-Endian)敲開,

由此曾發生過六次叛亂, 其中一個皇帝送了命, 另一個丟了王位。

我們一般將endian翻譯成“位元組序”, 將big endian和little endian稱作“大尾”和“小尾”

3、UCS-2、UCS-4、BMP

UCS有兩種格式:UCS-2和UCS-4。顧名思義,UCS-2就是用兩個位元組編碼,UCS-4就是用4個位元組(實際上只用了31位,最高位元必須為0)編碼。下面讓我們做一些簡單的數學遊戲:

UCS-2有2^16=65536個碼位,UCS-4有2^31=2147483648個碼位。

UCS -4根據最高位元為0的最高位元組分成2^7=128個group。每個group再根據次高位元組分為256個plane。每個plane根據第3個位元組分為 256行 (rows),每行包含256個cells。當然同一行的cells只是最後一個位元組不同,其餘都相同。

group 0的plane 0被稱作Basic Multilingual Plane, 即BMP。或者說UCS-4中,高兩個位元組為0的碼位元被稱作BMP。

將UCS-4的BMP去掉前面的兩個零位元組就得到了UCS-2。在UCS-2的兩個位元組前加上兩個零位元組,就得到了UCS-4的BMP。而目前的UCS-4規範中還沒有任何字元被分配在BMP之外。

3、UCS-2、UCS-4、BMP

UCS有兩種格式:UCS-2和UCS-4。顧名思義,UCS-2就是用兩個位元組編碼,UCS-4就是用4個位元組(實際上只用了31位,最高位元必須為0)編碼。下面讓我們做一些簡單的數學遊戲:

UCS-2有2^16=65536個碼位,UCS-4有2^31=2147483648個碼位。

UCS -4根據最高位元為0的最高位元組分成2^7=128個group。每個group再根據次高位元組分為256個plane。每個plane根據第3個位元組分為 256行 (rows),每行包含256個cells。當然同一行的cells只是最後一個位元組不同,其餘都相同。

group 0的plane 0被稱作Basic Multilingual Plane, 即BMP。或者說UCS-4中,高兩個位元組為0的碼位元被稱作BMP。

將UCS-4的BMP去掉前面的兩個零位元組就得到了UCS-2。在UCS-2的兩個位元組前加上兩個零位元組,就得到了UCS-4的BMP。而目前的UCS-4規範中還沒有任何字元被分配在BMP之外。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示