用python程式設計時,會遇到三個方面的編碼:
(1)python程式檔案的編碼
(2)python開發環境的編碼
(3)python讀取寫入檔案、網頁時,這些外部檔案的編碼
python2,在解決編碼問題上,比較複雜;python3在2的基礎上,優化了編碼部分,在寫程式時,使編碼問題很簡單就解決。
指建立這個檔案時的編碼,比如python2建立時預設檔案編碼是ascii, 可以用一些編輯器如notpad txt
檢視檔案編碼型別; 因此,想使用utf-8編碼時,開頭一般會加上#coding=utf-8
python2環境預設的是ascii編碼, python3預設的是utf-8編碼。
因此,python2寫程式時,要加上執行環境要想使用utf-8的話, 一般要加上幾句:
import sys
reload(sys)
sys.setdefaultencoding(『**重點內容**utf-8』)
這個是比較複雜的部分。
首先要清楚你讀取的外部檔案是什麼型別。
這個時候要用到 編碼encode, 解碼decode。
python2的編碼解碼:找乙個統一的中間編碼;
encode:將unicode編碼轉為其它型別的編碼;
decode:將其它型別的編碼轉為unicode編碼;可以通過這些轉換方便之後程式的書寫。
python3:python3預設的是utf-8編碼, 並且python3把 位元組流bytes, 字串str分的很清楚,可以方便轉換。
encode:將字元流轉換為機器編碼的位元組流,全都是16進製制;
decode:將16進製制的位元組流轉換為人能識別的字串。
python3因為,編碼問題已經解決了很多,按照正常程式讀取寫入, 基本不會出現問題。
讀取檔案open(, ,encoding=』utf-8』),設定讀進來的時候是什麼格式。
我經常碰到的是檔案裡有特殊字元,讀取到中間時,讀不下去了,導致讀取報錯。 這時候我的解決辦法是: open(』rb『)按照位元組流去讀取,
可以保證能夠讀進來。 然後,python3 bytes 和str轉換很方便, 轉換成字串就可以去做其它事情了。
Oh 讓人抓狂的git
原文 oh git 譯者 傑微刊兼職譯者張帆 git很難 因為搞砸了很容易,但是找到如何修復錯誤的方法缺很難。git官方的文件,存在 先有雞還是先有蛋 的問題 除非你知道解決問題的方法的特定名字,否則很難查詢到解決方案並順利的解決自己的問題。所以,下面是我自己曾經遇到的一些十分糟糕的場景,並且我最終...
讓人抓狂的縮排衝突 eslint
原本在開開心心地寫著 然鵝格式化後居然有一處 eslint 提示報錯,說我的縮排有問題,刪除多餘的縮排後,再格式化又變成了之前那樣!其它地方都沒問題,為啥就那一小塊會報錯呢?專案使用了 prettier 進行自動格式化,eslint 來進行檢查報錯,可是這倆貌似有世仇,不能好好相處。廢話不多說了,直...
python 令人抓狂的編碼問題
執行以下程式 usr bin env python coding utf 8 file open all hanzi.txt wb listhz n 0for ch in xrange 0x4e00,0x9fa6 print unichr ch file.write unichr ch 此行出錯。正...