python 編解碼 測試用例


以上是test.py,功能是將gbk編碼的字符串轉為utf-8.編解碼是待驗證功能

測試:

1——使用gbk編碼輸入測試輸出是否是utf-8類型。

具體怎么驗證是否是utf-8呢?tricks...

執行:python test.py  2>result

檢查result:cat result,如下

驗證編碼:

方法1: iconv -f utf-8 -t gb2312 result      結果如下:

如果使用iconv -f gb2312 -t utf-8  result    結果如下

證明結果編碼是gbk,正常功能ok

方法2:rz result 到本地,使用ie打開該文件,瀏覽器會自動識別編碼,此時看看瀏覽器編碼類型即可

2--使用utf-8字符串輸入

如何構造utf-8字符串?

方法1:使用剛才的輸出作為輸入

方法2:使用vi 輸入漢字,set encoding=gb2312,然后執行iconv -f gb2312 -t utf-8 gbk >utf-8

  

  

驗證:執行python test_encode.py(內容如下)

結果失敗

python編解碼程序詳解:[下面是轉載zz】

字符串在Python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字符串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。
decode的作用是將其他編碼的字符串轉換成unicode編碼,如str1.decode('gb2312'),表示將gb2312編碼的字符串str1轉換成unicode編碼。
encode的作用是將unicode編碼轉換成其他編碼的字符串,如str2.encode('gb2312'),表示將unicode編碼的字符串str2轉換成gb2312編碼。
因此,轉碼的時候一定要先搞明白,字符串str是什么編碼,然后decode成unicode,然后再encode成其他編碼
代碼中字符串的默認編碼與代碼文件本身的編碼一致。
如:s='中文'    如果是在utf8的文件中,該字符串就是utf8編碼,如果是在gb2312的文件中,則其編碼為gb2312。【zz end】

這里的 str1 =str.decode('gbk','ignore').encode('utf-8')的實際轉換過程是:

1、將編碼是gbk的str decode 為unicode,

2、然后將unicode 編碼 encode為utf-8

如果str不是gbk,則會出現

這樣的問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM