最近在python中遇到了編碼的問題,現總結如下:
說明:預設編碼格式為 utf-8,可以改為其他編碼格式
1. 判斷字串編碼格式:
可以利用isinstance來判斷字串的編碼格式:
example1:
>>>s = "hello world" # 一般字串
>>>isinstance(s, str) #判斷是否為一般字串
>>>true
>>>isinstance(s, unicode)#判斷是否為unicode
>>>false
example2:
>>>s = "哈哈" # 一般字串
>>>isinstance(s, str) #判斷是否為一般字串
>>>true
>>>isinstance(s, unicode)#判斷是否為unicode
>>>false
example3:
>>>s = u"哈哈" # unicode
>>>isinstance(s, str) #判斷是否為一般字串
>>>false
>>>isinstance(s, unicode) #判斷是否為unicode
>>>true
2.decode和encode的用法:
decode的作用是將其他編碼格式的字串轉換為unicode編碼格式
example1:
>>> s = "哈哈" # 一般字串
>>> isinstance(s.decode("utf-8"), unicode) #判斷轉化後的字串是否為unicode
>>>true
encode的作用是將unicode格式轉換為其他編碼格式:
example1:
>>> s = u"哈哈" # unicode字串
>>> isinstance(s.encode("utf-8"), str) #判斷轉化後的字串是否為unicode
>>>true
Python字串的編碼問題
字串在python內部的表示是 unicode 編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼 decode 成unicode,再從unicode編碼 encode 成另一種編碼。decode的作用是將其他編碼的字串轉換成unicode編碼,如str1.d...
python字串編碼問題
問題 程式如下 coding utf 8 raw input u 輸入 輸出 但是對print語句,卻沒有問題 coding utf 8 print u 輸入 原因可能是raw input函式在接受引數u 輸入 時,採用的是ascii解碼方式,而首行注釋 coding utf 8,只是宣告.py檔案...
python 字串編碼問題
字串還有乙個編碼問題。因為計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。最早的計算機在設計時採用8個位元 bit 作為乙個位元組 byte 所以,乙個位元組能表示的最大的整數就是255 二進位制11111111 十進位制255 0 255被用來表示大小寫英文本母 數字和一些符...