0

Technical Diploma (±12 years)ブラウザにある同じ文字列と比較したいと思います。私はPythonでWebドライバーテストを実行しています。そこでTechnical Diploma (±12 years)は、データベースからフェッチし、ブラウザーに存在する文字列と比較しようとします。比較しようとすると、このエラーが発生します

Unicode警告:Unicodeの等しい比較は、両方の引数をUnicodeに変換できませんでした-それらを等しくないと解釈します

Pythonでこれらの非ASCII文字列を比較するにはどうすればよいですか?

4

2 に答える 2

6

文字列の1つは、Unicode値ではなく、バイト文字列です。最初にデコードして、Unicodeに変換します。

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

ただし、最初にバイト文字列がどのエンコーディングであるかを理解する必要があります。

ソースファイルエンコーディングを定義し、コードで文字列をリテラルとして定義している場合は、文字列の前に:を付けて、Unicodeリテラルとして定義していることを確認してくださいu''

u'Technical Diploma (±12 years)'

ただし、先に進む前に、 PythonUnicodeHOWTOをよく読んでおくことを強くお勧めします。

于 2012-09-03T19:44:03.610 に答える
1

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
>>> 
于 2012-09-03T19:47:31.380 に答える