簡體   English   中英

使用python編碼解碼

[英]Encode Decode using python

我在python中有此功能

Str = "ü";
print Str


def correctText( str ):
  str = str.upper()
  correctedText = str.decode('UTF8').encode('Windows-1252')
  return correctedText; 

corText = correctText(Str); 
print corText

它可以工作並轉換¼和Ã等字符,但是當我嘗試Ã時卻失敗了。 和¶

有辦法解決嗎?

根據UTF8,Ã和¶不是有效字符,這意味着字節數不能被4整除(通常)。 您需要做的是使用其他類型的編碼,或者通過使用unicode()函數消除str中的錯誤。 我建議使用梯子。

您想要做的是由幾個連續的Windows-1252代碼組成有效的UTF-8代碼。

例如,對於ü ,的的Windows 1252代碼ÃC3¼這是BC 代碼C3BC恰好是ü的UTF-8代碼。

現在,對於Ã? ,Windows-1252代碼為C33F ,它不是有效的UTF-8代碼(因為第二個字節不是以10開頭)。

您確定此順序出現在您的文本中嗎? 例如,對於à ,UTF-8代碼(C3A0)的Windows-1252解碼后跟Ã然后是不可打印字符(不間斷空格)。 因此,如果第二個字符未打印,則? 可能是文本的常規字符。

對於¶在Windows-1252編碼C2B6 它不應該是ö ,為此,在Windows 1252編碼是C3B6 ,相當於的UTF-8編碼ö

暫無
暫無

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

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