python編碼問題

2021-08-03 19:38:24 字數 1252 閱讀 2523

爬蟲爬了一半老是亂碼

琢磨好幾天。

這次寫的cmd中文亂碼 但是爬出來的資料正常。

首先定位問題在與cmd 中文亂碼

之後發現對於這塊是沒有問題的

# -*- coding:utf-8 -*-

print u"請輸入帖子號"

但是對於輸出的是中文亂碼

content='是否寫入樓層資訊,是輸入1,否輸入0\n'

floortag = raw_input(content)

然後問題可以定位:

在windows下的cmd中執行python的raw_input時中文亂碼問題

py程式是utf-8編碼

python程式編譯後也是為utf-8編碼

cmd是通過gbk進行解析的

gbk 解析 utf-8 就會出現亂碼

另外 raw_input()語句不支援unicode顯示

所以上述解決辦法:強制編碼轉換 

先將content按照utf-8編碼為unicode物件

再將其編碼為gbk

test = raw_input(unicode(content,'utf-8').encode('gb2312'))
unicode(string[,encoding[,errors]]])將string按照encoding的格式編碼為unicode物件

unicode有decode()和encode()方法

decode編碼 encode解碼

# -*- coding:utf-8 -*-

content = '編碼錯了嗎啊啊啊啊'

print content

print unicode(content,'utf-8')

print u'我得 '

print u"e迭代"

Python編碼問題

tag python,encoding,unicode 現有的字元編碼 ascii,gbk,gb2312,utf 8,unicode.unicode可以用來表示所有語言的字元,而且是定長雙位元組 也有四位元組的 編碼,包括英文本母在內。python中定義乙個unicode字串和定義乙個普通字串一樣簡...

python編碼問題

python裡面基本上要考慮三種編碼格式 1 原始檔編碼 在檔案頭部使用coding宣告。告訴python直譯器該 檔案所使用的字符集。usr bin python coding utf8 2 內部編碼 檔案中的字串,經過decode以後,被轉換為統一的unicode格式的內部資料,類似於u uni...

Python編碼問題

python裡面基本上要考慮三種編碼格式 1 原始檔編碼 在檔案頭部使用coding宣告。告訴python直譯器該 檔案所使用的字符集。usr bin python coding utf8 2 內部編碼 檔案中的字串,經過decode以後,被轉換為統一的unicode格式的內部資料,類似於u uni...