背景:在跑hadoop是python指令碼經常要處理不同的格式的編碼資料,主要字元編碼:ascii,gb18030,unicode,utf-8等
python有兩種字串
bytestring = "hello world! (in my default locale)"
unicodestring = u"hello unicode world!"
相互轉換
1 s = "hello normal string"
2 u = unicode( s, "utf-8" )
3 backtobytes = u.encode( "utf-8" )
3 backtoutf8 = backtobytes.decode(『utf-8』) #與第二行效果相同
如何判斷
if isinstance( s, str ): # 對unicode strings,這個判斷結果為false
if isinstance( s, unicode): # 對unicode strings,這個判斷結果為true
if isinstance( s, basestring ): # 對兩種字串,返回都為true
系統預設編碼
import sys
sys.getdefaultecoding() "default ascii" 預設是位元組編碼
decode,encode 使用
python 系統內部處理是unicode 編碼,在轉碼時,首先將不同編碼格式的字串轉化為unicode, 如:s="中國",s.decode('gbk')。對unicode內碼的資料用encoding轉成相關編碼的字元資料。s.encode('utf8').
-*- coding: utf-8 -*-
py檔案當中是不支援中文的,即使你輸入的注釋是中文也不行,為了解決這個問題,就需要把檔案編碼型別改為utf-8的型別,輸入這個**就可以讓py原始檔裡面有中文了。python 解碼 unicode 明文
s = '1. u = eval('u"' + s + '"')\u4f60\u597d\uff0c\u4ece\u6ce2\uff01
'
2.u = s.decode('unicode_escape')
3.使用 python3
Python 中的字元編碼
1 str型別可以理解為乙個二進位制block,或multibyte 2 multibyte str.decode unicode 3 unicode str.encode multibyte str binary block 4 unicode str 的操作引數也應為unicode,如 unic...
Python中的字元編碼
cpu 記憶體 硬碟是計算機的三大核心硬體。1.任何軟體在執行之前,都是以二進位制的格式儲存在硬碟當中的。2.當軟體被開啟時,硬碟將資料載入到記憶體中,cpu再從記憶體中讀取資料被執行。3.軟體在執行過程中產生的資料都是存放於記憶體中,若想永久儲存資料,則得轉移到硬碟中 有的小夥伴可能會想到 那在電...
python中的字元編碼問題
總結python的字元編碼 應該在 最初兩行內包含 usr bin env python coding utf 8 獲得 設定系統的預設編碼 sys.getdefaultencoding sys.setdefaultencoding utf 8 獲得檔案系統的檔名的編碼 sys.getfilesys...