欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python UnicodeEncodeError: 'gbk' codec can't encode character 解決方法

 更新時間:2015年04月24日 11:18:20   投稿:junjie  
這篇文章主要介紹了Python UnicodeEncodeError: 'gbk' codec can't encode character 解決方法,需要的朋友可以參考下

使用Python寫文件的時候,或者將網(wǎng)絡(luò)數(shù)據(jù)流寫入到本地文件的時候,大部分情況下會遇到:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 這個問題。 網(wǎng)絡(luò)上有很多類似的文件講述如何解決這個問題,但是無非就是encode,decode相關(guān)的,這是導(dǎo)致該問題出現(xiàn)的真正原因嗎?不是的。 很多時候,我們使用了decode和encode,試遍了各種編碼,utf8,utf-8,gbk,gb2312等等,該有的編碼都試遍了,可是編譯的時候仍然出現(xiàn): UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position XXX。 崩潰了。

    在windows下面編寫python腳本,編碼問題很嚴(yán)重。

    將網(wǎng)絡(luò)數(shù)據(jù)流寫入文件時時,我們會遇到幾個編碼:

    1: #encoding='XXX' 這里(也就是python文件第一行的內(nèi)容)的編碼是指該python腳本文件本身的編碼,無關(guān)緊要。只要XXX和文件本身的編碼相同就行了。 比如notepad++ "格式"菜單里面里可以設(shè)置各種編碼,這時需要保證該菜單里設(shè)置的編碼和encoding XXX相同就行了,不同的話會報錯

    2:網(wǎng)絡(luò)數(shù)據(jù)流的編碼 比如獲取網(wǎng)頁,那么網(wǎng)絡(luò)數(shù)據(jù)流的編碼就是網(wǎng)頁的編碼。需要使用decode解碼成unicode編碼。

    3:目標(biāo)文件的編碼 要將網(wǎng)絡(luò)數(shù)據(jù)流的編碼寫入到新文件,那么我么需要指定新文件的編碼。寫文件代碼如:

復(fù)制代碼 代碼如下:

f.write(txt) 

,那么txt是一個字符串,它是通過decode解碼過的字符串。關(guān)鍵點(diǎn)就要來了:目標(biāo)文件的編碼是導(dǎo)致標(biāo)題所指問題的罪魁禍?zhǔn)?。如果我們打開一個文件:
復(fù)制代碼 代碼如下:

f = open("out.html","w") 

,在windows下面,新文件的默認(rèn)編碼是gbk,這樣的話,python解釋器會用gbk編碼去解析我們的網(wǎng)絡(luò)數(shù)據(jù)流txt,然而txt此時已經(jīng)是decode過的unicode編碼,這樣的話就會導(dǎo)致解析不了,出現(xiàn)上述問題。 解決的辦法就是,改變目標(biāo)文件的編碼:
復(fù)制代碼 代碼如下:

f = open("out.html","w",encoding='utf-8') 

。這樣,問題將不復(fù)存在。

相關(guān)文章

  • python3+django2開發(fā)一個簡單的人員管理系統(tǒng)過程詳解

    python3+django2開發(fā)一個簡單的人員管理系統(tǒng)過程詳解

    這篇文章主要介紹了python3+django2開發(fā)一個簡單的人員管理系統(tǒng)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python3中的md5加密實(shí)例

    python3中的md5加密實(shí)例

    今天小編就為大家分享一篇python3中的md5加密實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 基于Python實(shí)現(xiàn)B站視頻數(shù)據(jù)信息內(nèi)容采集

    基于Python實(shí)現(xiàn)B站視頻數(shù)據(jù)信息內(nèi)容采集

    這篇文章主要介紹了如何基于Python實(shí)現(xiàn)B站視頻數(shù)據(jù)信息內(nèi)容采集,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2024-02-02
  • 在django中使用post方法時,需要增加csrftoken的例子

    在django中使用post方法時,需要增加csrftoken的例子

    這篇文章主要介紹了在django中使用post方法時,需要增加csrftoken的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python2和Python3中print的用法示例總結(jié)

    Python2和Python3中print的用法示例總結(jié)

    在Python 3中接觸的第一個很大的差異就是縮進(jìn)是作為語法的一部分,這和C++等其他語言確實(shí)很不一樣,所以要小心,其中python3和python2中print的用法有很多不同,這篇文章主要給大家介紹了關(guān)于Python2和Python3中print用法的相關(guān)資料,需要的朋友可以參考下。
    2017-10-10
  • django請求返回不同的類型圖片json,xml,html的實(shí)例

    django請求返回不同的類型圖片json,xml,html的實(shí)例

    今天小編就為大家分享一篇django請求返回不同的類型圖片json,xml,html的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python selenium自動上傳有贊單號的操作方法

    python selenium自動上傳有贊單號的操作方法

    這篇文章主要介紹了python selenium自動上傳有贊單號的操作代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • python將字母轉(zhuǎn)化為數(shù)字實(shí)例方法

    python將字母轉(zhuǎn)化為數(shù)字實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于python如何將字母轉(zhuǎn)化為數(shù)字的相關(guān)實(shí)例內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2019-10-10
  • 二十種Python代碼游戲源代碼分享

    二十種Python代碼游戲源代碼分享

    這篇文章主要介紹了二十種Python代碼游戲源代碼分享,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Python中的filter()函數(shù)的用法

    Python中的filter()函數(shù)的用法

    這篇文章主要介紹了Python中的filter()函數(shù)的用法,代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04

最新評論