1. 程式人生 > >解決編碼或解碼中非合法字元的問題處理方式

解決編碼或解碼中非合法字元的問題處理方式

錯誤資訊:

UnicodeDecodeError: ‘XXX' codec can't decode bytes in position 2-5: illegal multibyte sequence 

這是因為遇到了非法字元,例如:全形空格往往有多種不同的實現方式,比如\xa3\xa0,或者\xa4\x57,
這些字元,看起來都是全形空格,但它們並不是“合法”的全形空格
真正的全形空格是\xa1\xa1,因此在轉碼的過程中出現了異常。 
而之前在處理新浪微博資料時,遇到了非法空格問題導致無法正確解析資料。

[解決辦法]

#將獲取的字串strTxt做decode時,指明ignore,會忽略非法字元,

#當然對於gbk等編碼,處理同樣問題的方法是類似的

strTest = strTxt.decode('utf-8', 'ignore')

return strTest

[補充]

預設的引數就是strict,代表遇到非法字元時丟擲異常; 
如果設定為ignore,則會忽略非法字元; 
如果設定為replace,則會用?號取代非法字元; 
如果設定為xmlcharrefreplace,則使用XML的字元引用。

相關推薦

解決編碼解碼中非合法字元的問題處理方式

錯誤資訊: UnicodeDecodeError: ‘XXX' codec can't decode bytes in position 2-5: illegal multibyte sequence  這是因為遇到了非法字元,例如:全形空格往往有多種不同的實現方式,比如

CMD執行JAVA出現編碼GBK的不可對映字元處理方法

出現這樣的錯誤,一般是因為程式碼中含有中文字元,註釋中的中文字元也算。由於使用CMD執行java程式的時候,系統預設的編碼格式是gbk。而包含中文字元的程式碼一般是UNICODE格式,所以直接執行含有中文字元的程式碼就很容易出現編碼錯誤。

java實踐-解決"編碼GBK 的不可對映字元"

在windows下使用DOS模式編譯java檔案時,產生以下問題: 剛開始以為是由於編輯器的編碼格式導致的,通過不斷save、compile java檔案,發現與編輯器的編碼方式無關. 最後參考

訪問檔案圖片報403的處理方式

直接訪問檔案,提示403,拒絕訪問,即許可權問題 解決辦法 1: 新增tokenId,這個在檔案伺服器上需要配置 解決辦法 2: 新增 /mic字尾 403錯誤是因為檔案服務圈限制,該方法的原理式在檔案伺服器裡設定相關過濾器。 (另外,可在/mic後追

SpringBoot引入第三方jar包本地jar包的處理方式

在開發過程中有時會用到maven倉庫裡沒有的jar包或者本地的jar包,這時沒辦法通過pom直接引入,那麼該怎麼解決呢 一般有兩種方法 - 第一種是將本地jar包安裝在本地maven庫 - 第二種是將本地jar包放入專案目錄中 這篇文章主要講第二

Python 2.x中常見字元編碼解碼方面的錯誤及其解決辦法

Python 2.x中的字元編碼,設計的的確不好,導致初學者,甚至是即使用Python很長時間的人,都會經常遇到字元編解碼方面的錯誤。 下面就把一些常見情,儘量的都整理出來,並給出相應的解決辦法。 看此文之前 Python中字元編碼所涉及的背後邏輯(從你輸入字元,到

WebUtility(提供在處理 Web 請求時用於編碼解碼 URL 的方法。)

html second rep eth asp entity utility -s 文本 public static string UrlEncode( string str ) UrlEncode(String) 方法可用來編碼整個 URL,包括查詢字符串值。

Python2與Python3的字元編碼解碼

轉載於:https://www.jianshu.com/p/19c74e76ee0a 編碼與解碼 編碼(encode):在Unicode中,每一個字元都有一個唯一的數字表示,那麼將Unicode字串轉換為特定字元編碼(ASCII、UTF-8、GBK)對應的位元組串的過程和規則就是編碼。

maven編譯遇到"編碼GBK的不可對映字元"警告的處理

環境 作業系統:win10 JDK:1.8.0_144 maven:3.5.0 問題 普通的maven工程,java原始碼註釋中有中文,如下: package com.bolingcavalry.addservice; /** * @author wilzhao *

[Python除錯] 'gbk' codec can't encode character xxx in position的錯誤解決&編碼解碼的思考探究

錯誤出現 使用request模組爬取網頁,將頁面原始檔res.text儲存到檔案get.html時, import request res = requests.get('http://weibo.com') with open(r'd:\get.html', 'w') as f

[Java]錯誤:編碼GBK的不可對映字元解決辦法

1.前提:出現如下錯誤: >>>javac test1.java >>>test1.java:3: 錯誤: 編碼GBK的不可對映字元>>>          &n

java編碼解碼。亂碼原因及解決辦法

轉換流的編碼,常見的出現亂碼組合 package com.qianfeng.test; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import

maven編譯遇到"編碼GBK的不可對映字元"警告的處理

環境 作業系統:win10 JDK:1.8.0_144 maven:3.5.0 問題 普通的maven工程,java原始碼註釋中有中文,如下: package com.bolingcavalry.add

python下字元編碼解碼問題 UnicodeEncodeError 'gbk' codec can't encod

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                     先說說我為何出現了這個問題,因為學完爬蟲後想拿豆瓣電影Top250練練手,這個是參考的連結(http://blog.csdn.net/fighting

中文亂碼解決之一 JS的編碼解碼及C#中對應的解碼編碼

JS的編碼、解碼及C#中對應的解碼、編碼 1、escape 定義和用法 escape對字串資料編碼,如果是對url進行編碼必須用encodeURI或是encodeURLComponent,解碼使用:unescape。 返回值 字符集是unicode,編碼成16進位制。 說明

處理URL編碼解碼

Python url編碼: urllib.quote(url)#沒有對“/”進行處理 urllib.quote_plus(url) url解碼: urllib.unquote(url)#

Python中json.loads的時候出錯->要注意要解碼的Json字元編碼

記錄一些關於Python中使用json.loads時候的注意事項。 在貼出注意事項之前,先貼上,python文件中,關於json.loads的說明: json.loads(s[, encoding[, cls[, object_hook[, parse_float[,parse_int[, par

pythong中" "的編碼解碼處理

“&nbsp”在 html 裡是空格佔位符,普通的空格在 html 裡如果連續的多個可能被認為只有一個,而”&nbsp”你寫幾個就能佔幾個空格位 而當Python對HTML中的”&am

asp對中文編碼解碼,Decode和Encode中文網址處理

<%'-------------------------------------------------------------------------- '=======================================================

python 字元編碼解碼——unicode、str和中文:UnicodeDecodeError: 'ascii' codec can't decode

摘要:在進行python指令碼的編寫時,如果我們用python來處理網頁資料或者進行與中文字元有關的處理工作,經常出現這樣的出錯資訊:SyntaxError: Non-ASCII character '\xe6' in file ./filename.py on line