簡體   English   中英

從包含符號的字符串中不知道該符號的編碼,如何顯示完整的字符串以避免出錯?

[英]From an string that contains a symbol without knowing the encoding of that symbol, how can I show the complete string avoiding having errors?

我從數據庫中檢索了許多字符串,其中包含我需要顯示的一些字符,例如€(我使用的是python 2.7)。 但問題是出現以下錯誤:

UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 33: invalid start byte 

在這種情況下,字符串就像st = ' the price in €'但它可能是一個不同的符號(現在錯誤只出現在那種情況下,但將來另一個角色可能會給我這個問題)

我使用以下方法管理錯誤:

st = st.decode('utf8', errors='ignore')

該解決方案的問題是它刪除符號€,但我想顯示該符號。 我嘗試使用repr(st)來查找編碼是什么,它給了我'\\x80'

我想找到一種方法,我可以打印該字符但沒有專門搜索該符號(因為它可能是另一個)並設法沒有該錯誤。

我不知道是否有另一種方法來查看問題,因為我的方法是嘗試找到該char的編碼並嘗試轉換為普通字符串,但我發現錯誤也出現了嘗試編碼為' latin1','utf-8'或'ascii'。 也許我的問題是我沒有任何編碼經驗,我只是一個菜鳥。

嘗試chardet庫

該庫可以檢測字符串的編碼。 但它不能保證100%准確,因為這是不可能的,至少現在是這樣。 您可以閱讀他們的文檔以獲得詳細說明。 希望這能解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM