#coding:utf-8
in [6]: importsysin [7]: sys.getdefaultencoding()
out[7]: '
ascii
'in [8]: reload(sys)
'sys
' (built-in)>in [9]: sys.setdefaultencoding('
utf-8')
in [10]: sys.getdefaultencoding()
out[10]: '
utf-8
'
#是最早使用、最常見的一種字元編碼,包含了128個字元(英文本母、數字、符號、控制字元等),也是下面講到的所有編碼的公共集合。#syntaxerror: from __future__ imports must occur at the beginning of the file
in [25]: from
__future__
import
unicode_literals
in [26]: type('
123'
)out[26]: unicode
in [27]: type(u'
123'
)out[27]: unicode
西歐字符集編碼。
這是簡體中文的三種編碼,從左到右包含的字元範圍依次增大,左邊是右邊的子集。
正體中文編碼。
in [11]: from chardet import注:detect的引數不能是unicode字串,否則會報錯。detect
in [12]: detect('
abc'
)out[12]:
in [13]: detect(r'
abc'
)out[13]:
str和unicode都是python內建的兩種字串類,並且有著同樣的父類:basestring
in [15]: type('有時候並不知道乙個字串的編碼是什麼(比如從某個檔案中讀取的內容),這時候如何把這個檔案的字元編碼轉為需要的編碼呢(比如gbk)?123'
)out[15]: str
in [16]: type(u'
123'
)out[16]: unicode
in [17]: str.__bases__
out[17]: (basestring,)
in [18]: unicode.__bases__
out[18]: (basestring,)
in [19]: basestring.__bases__
out[19]: (object,)
答案是:借助unicode為橋梁。
比如:
with open('content.txt
','r
') as fin:
content =fin.read()
#這裡先把檔案內容decode成utf-8編碼(中間橋梁),再encode成gbk編碼(目標編碼)
target = content.decode('
utf-8
').encode('
gbk')
in [20]: s = '\u6211
'in [21]: type(s)
out[21]: str
in [22]: print
s\u6211
in [23]: print s.decode('
unicode-escape
').encode('
utf-8')
我
in [2]: s = '按照matplotlib預設的字元編碼,在圖表中中文不能正常顯示,會顯示為方框,如下:123'
in [3]: type(s)
out[3]: str
in [4]: s = unicode(s,'
utf-8')
in [5]: type(s)
out[5]: unicode
import解決方法:matplotlib.pyplot as plt
x = [1,2,3]
y = [4,6,8]
plt.plot(x,y)
plt.title(u'資料
')plt.show()
plt.rcparams['font.sans-serif
'] = ['
simhei
'] #
指定預設字型
plt.rcparams['
axes.unicode_minus
'] = false #
解決負號顯示為方框的問題
plt.title(u'資料'
python字元編碼
ascii 碼是乙個位元組,通常只能顯示英文本母和數字。unicode碼為了顯示多種語言產生,但是要占用兩個位元組,顯示文字要占用大量空間 utf 8 為了節約空間而生,英文本元只用乙個位元組儲存,中文字元需要三個位元組 character ascii unicode utf 8 a01000000...
python字元編碼
列印python檔案編碼 import sys print sys.getdefaultencoding 中文的乙個字元unicode占用2個位元組。對在於ascii字元占用1個位元組 utf 8中 中文字元佔3個位元組,英文本元占用1個位元組 編碼和轉碼 unicode不能再解碼了 它是基層的 u...
Python字元編碼
在用python程式設計中,字串有兩種表示方法 string 和 u string 為什麼字串要是用這兩種表達方式。不是僅僅用前一種呢?使用type 函式檢視,它們各自是str物件和unicode物件。這兩個物件有什麼差別嗎?還有經經常使用到的encode 和decode 又是幹什麼的呢?都說pyt...