歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python 編解碼【初探】

編碼是為了兼容字符集之間的通用性,通常可以編碼的地方有:
1、系統默認編碼
2、程序運行環境的編碼
3、源碼文件自身的編碼
4、程序中的字符串編碼

對於python也是一樣的:

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

python運行環境默認的編碼是ascII

源文件的編碼可以自己確定【# -*- coding: gbk -*-】,不設置就是默認的python編碼

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

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

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

python中程序內部編解碼的方式:

  1. >>s='中文'  
  2. >>type(s) #查看s的字符類型   
  3. >>s #查看字符原碼   
  4. >>print s  #調用系統字符集解碼   
  5.   
  6. >>unicode(s,'gbk')  #解碼為unicode   
  7. >>type(s)  
  8. >>s  
  9. >>print s  
  10.   
  11. >>s.encode('utf-8'##編碼為utf8   
  12. >>type(s)  
  13. >>s  
  14. >>print s  
  15.   
  16. >>s.decode('utf-8'##解碼utf8,默認的編碼方式是unicode   
  17. >>type(s)  
  18. >>s  
  19. >>print s  

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

另外對於一些包含特殊字符的編碼,直接解碼可能會報錯,可以使用對於的參數來設置。如
s.decode('utf-8',ignore)忽略其中有異常的編碼,僅顯示有效的編碼
s.decode('utf-8',replace)替換其中異常的編碼為?,這個相對來可能一眼就知道那些字符編碼出問題了。

Copyright © Linux教程網 All Rights Reserved