一、系統預設編碼 python 2.7版本系統預設編碼是ascii python 3.1版本系統預設編碼是unicode 可以通過內建模塊sys獲取系統預設編碼 import sys print sys.getdefaultencoding() 有兩種方法可以講系統預設編碼變成utf-8 1、在代碼 ...
一、系統預設編碼
python 2.7版本系統預設編碼是ascii
python 3.1版本系統預設編碼是unicode
可以通過內建模塊sys獲取系統預設編碼
import sys
print sys.getdefaultencoding()
有兩種方法可以講系統預設編碼變成utf-8
1、在代碼第一行加上 # -*- coding:utf-8 -*-
2、通過sys模塊
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
二、用decode和encode編碼
幾種常見編碼
- GB2312編碼:適用於漢字處理、漢字通信等系統之間的信息交換
- GBK編碼:是漢字編碼標準之一,是在 GB2312-80 標準基礎上的內碼擴展規範,使用了雙位元組編碼
- ASCII編碼:是對英語字元和二進位之間的關係做的統一規定
- Unicode編碼:這是一種世界上所有字元的編碼。當然了它沒有規定的存儲方式。
- UTF-8編碼:是 Unicode Transformation Format - 8 bit 的縮寫, UTF-8 是 Unicode 的一種實現方式。它是可變長的編碼方式,可以使用 1~4 個位元組表示一個字元,可根據不同的符號而變化位元組長度。
編碼轉換
Python內部的字元串一般都是 Unicode編碼。代碼中字元串的預設編碼與代碼文件本身的編碼是一致的。所以要做一些編碼轉換通常是要以Unicode作為中間編碼進行轉換的,即先將其他編碼的字元串解碼(decode)成 Unicode,再從 Unicode編碼(encode)成另一種編碼。
decode 的作用是將其他編碼的字元串轉換成 Unicode 編碼,eg name.decode(“GB2312”),表示將GB2312編碼的字元串name轉換成Unicode編碼
encode 的作用是將Unicode編碼轉換成其他編碼的字元串,eg name.encode(”GB2312“),表示將GB2312編碼的字元串name轉換成GB2312編碼
所以在轉換之前必須先知道name的編碼格式。