python的字串的編碼問題

2021-06-04 07:53:02 字數 999 閱讀 5481

最近在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被用來表示大小寫英文本母 數字和一些符...