2

最初のオブジェクトはStrオブジェクトであり、2番目のオブジェクトはUnicodeオブジェクトであるため、これはFalseを返します。

ただし、どちらもラモンなので、 Trueを返すようにするにはどうすればよいですか。

私は最初のものをUnicodeオブジェクトに変換しようとしました:

>>> varString = 'Ramón'
>>> varUnicode = u'Ramón'
>>> varString == varUnicode
False
>>> newUnicode == unicode(varString, encoding='unicode-escape')
>>> varString; varUnicode; newUnicode
'Ram\xa2n'
u'Ram\xf3n'
u'Ram\xa2n'
>>> varUnicode == newUnicode
False

それらは異なるエンコーディングを持っています。私に何ができる?ありがとう!

4

1 に答える 1

1

varStringでエンコードされる可能性は低いunicode-escapeです。Pythonインタープリターは、プロンプトsys.stdin.encodingで読み取ったものをオブジェクトにデコードするときのエンコーディングを使用します。したがって、オブジェクトを自分でデコードするときに同じエンコーディングを使用できます。>>>unicodestr

>>> import sys
>>> sys.stdin.encoding
'UTF-8'
>>> varString = 'Ramón'
>>> varUnicode = u'Ramón'
>>> newUnicode = unicode(varString, encoding='UTF-8') # or encoding=sys.stdin.encoding
>>> varString; varUnicode; newUnicode
'Ram\xc3\xb3n'
u'Ram\xf3n'
u'Ram\xf3n'
>>> varUnicode == newUnicode
True
于 2012-09-18T18:19:21.947 に答える