日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python编码问题总结

發布時間:2025/4/14 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python编码问题总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.xprogrammer.com/1258.html

最近利用python抓取一些網上的數據,遇到了編碼的問題。非常頭痛,總結一下用到的解決方案。

  • ? ??linux中vim下查看文件編碼的命令 set fileencoding
  • ? ??python中一個強力的編碼檢測包 chardet ,使用方法非常簡單。linux下利用pip install chardet實現簡單安裝
import chardet f = open('file','r') fencoding=chardet.detect(f.read()) print fencoding

fencoding輸出格式?{‘confidence’: 0.96630842899499614, ‘encoding’: ‘GB2312′} ,只能判斷是否為某種編碼的概率。比較準確的結果了。輸入參數為str類型。

  • ? ? ??了解python中str的編碼后可以利用decode和encode來實現編碼的轉換。

一般流程是str利用decode方法根據str的編碼將其解碼為unicode字符串類型,然后利用encode根據特定的編碼將unicode字符串類型轉換為特定的編碼。python中str和unicode屬于兩種不同的類型,如下。

  • ?一般情況下window默認編碼gbk,linux默認編碼utf8
  • ?python編程中?系統編碼,python編碼,文件編碼 的概念。

系統編碼:默認寫源碼的編輯器的編碼方式。它代表源碼文件內的所有內容都是根據詞方式編碼成二進制碼流。存入到磁盤中的。linux下通過locale命令查看。

python編碼:指python內設置的解碼方式。如果不設定的話,python默認的是ascii解碼方式。如果python源代碼文件中不出現中文的話,這個地方怎么設定應該不會問題。

設定方法:在源碼文件開頭(一定是第一行):#-*-coding:UTF-8-*-,源碼文件的設置解碼方式是UTF-8 或者

import sys reload(sys) sys.setdefaultencoding('UTF-8')

文件編碼:文本的編碼方式,linux下vim利用set fileencoding查看。

  • ? ? 一般情況下輸出亂碼的原因就是 沒有按照系統解碼的方式進行編碼。

比如print s, s類型為str,linux系統下系統默認編碼為utf8編碼,s在輸出前就應該編碼為utf8。如果s為gbk編碼就應該這樣輸出。print s.decode(‘gbk’).encode(‘utf8′)才能輸出中文。

window下面情況相同,window默認編碼為gbk編碼,所以s輸出前必須編碼為gbk。

  • ? ? python處理中一般處理unicode類型。這樣輸出前直接編碼即可

總結

以上是生活随笔為你收集整理的python编码问题总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。