Python 編譯碼 初探

2021-06-02 06:38:30 字數 1106 閱讀 5154

編碼是為了相容字符集之間的通用性,通常可以編碼的地方有:

1、系統預設編碼

2、程式執行環境的編碼

3、原始碼檔案自身的編碼

4、程式中的字串編碼

對於python也是一樣的:

通常中文作業系統的編碼都是gbk

python執行環境預設的編碼是ascii

原始檔的編碼可以自己確定【# -*- coding: gbk -*-】,不設定就是預設的python編碼

程式內容的編碼可以通過python提供的幾個函式來進行轉換。【如unicode】

通常python編譯碼的過程是這樣的:

接受到乙個字元--如果預先沒有編碼則使用unicode編碼--》如果和系統的字符集不一致-->則隱性轉換為系統預設的字符集--》使用系統的編碼方式解碼字串

python中程式內部編譯碼的方式:

>>s='中文'

>>type(s) #檢視s的字元型別

>>s #檢視字元原碼

>>print s #呼叫系統字符集解碼

>>unicode(s,'gbk') #解碼為unicode

>>type(s)

>>s

>>print s

>>s.encode('utf-8') ##編碼為utf8

>>type(s)

>>s

>>print s

>>s.decode('utf-8') ##解碼utf8,預設的編碼方式是unicode

>>type(s)

>>s

>>print s

指定的編碼字元只能用指定的編碼方式解碼,否則會報錯。所有字符集中python的中間字符集是unicode。即如果gbk想轉換為utf-8的路徑不是直接轉換,而是gbk->unicode->utf-8.不能直接gbk->utf-8

另外對於一些包含特殊字元的編碼,直接解碼可能會報錯,可以使用對於的引數來設定。如

s.decode('utf-8',ignore)忽略其中有異常的編碼,僅顯示有效的編碼

s.decode('utf-8',replace)替換其中異常的編碼為?,這個相對來可能一眼就知道那些字元編碼出問題了。

編譯碼 霍夫曼編譯碼

1.檔案源 原始影象分塊為 8 8 在rle編碼之後做霍夫曼編碼。其中rle碼字格式如下。struct rlecode 2.構建霍夫曼表 本文中使用的為jpeg標準ac y霍夫曼表。構建乙個256維大小的碼表hufftable,其霍夫曼碼字結構如下。struct huffcode 3.關鍵幀霍夫曼編...

編碼 解碼 中文編譯碼

字串和字符集的關係 字串是python程式的一種格式 位元組串是網路傳輸的一種形式 字串和位元組串轉換 字串 str encode 位元組串 bytes 位元組串 bytes decode 字串 str ascii字符集是utf 8字符集的前128位字元,可以說ascii字符集是utf 8字符集的子...

python編譯碼的那些事兒

在python程式設計尤其是處理web應用時,遇到編譯碼問題的概率較大,通常這種問題也比較繁瑣,記下自己的理解,以備不時之需。編譯碼存在的意義主要是由於各種不同編碼方式的存在,有gbk啦,也有utf 8啦,還有gb2312等等。python中的decode和encode的引數意義是一樣的,即deco...