簡體   English   中英

如何比較兩個非ASCII字符串

[英]How to compare two non-ASCII strings

我想將Technical Diploma (±12 years)與瀏覽器中存在的相同字符串進行比較。 我正在Python中運行Webdriver測試,該測試從數據庫獲取Technical Diploma (±12 years) ,並嘗試與瀏覽器中存在的字符串進行比較。 嘗試比較時出現此錯誤

Unicode警告:Unicode相等比較無法將兩個參數都轉換為Unicode-將它們解釋為不相等

如何在Python中比較這些非ASCII字符串?

您的字符串之一不是unicode值,而是字節字符串。 您想通過先解碼將其轉換為unicode:

'Non-ASCII value containing UTF8: \xc2\xb1'.decode('utf8')

但您首先必須弄清楚字節串的編碼方式。

如果已經定義了源文件編碼,並且正在代碼中將字符串定義為文字,請通過在字符串前加上u''來確保將其定義為Unicode文字:

u'Technical Diploma (±12 years)'

我強烈建議您在繼續之前閱讀Python Unicode HOWTO

Python告訴您問題所在:首先轉換為UTF-8。

例:

>>> u1='Technical Diploma (±12 years)'
>>> u2=u'Technical Diploma (±12 years)'
>>> u1==u2
__main__:1: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
False
>>> u1.decode('utf-8')==u2
True
>>> 

暫無
暫無

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

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