我正在使用python3接收和处理来自电报频道的文本消息。我有时会收到包含以下字符串的消息:
Ехchanges: Віnance Futures
看起来很正常。但当我想检查时
if 'Exchanges' in the_string:
我得到
False
试图追踪:
the_string.encode()
产生
b'xd0x95xd1x85changes: xd0x92xd1x96nance Futures'
如何将其转换为常用字符串?
'Exchanges: Binance Futures'
尝试将str类的encode((和decode((方法混合使用:
>>> my_string = 'Ехchanges: Віnance Futures'
>>> 'Ехchanges' in my_string
True
>>> my_string.encode()
b'xd0x95xd1x85changes: xd0x92xd1x96nance Futures'
>>> 'Ехchanges' in my_string.encode().decode()
True
>>>
它是utf-8
编码的字符串。这里需要使用字符串解码器decode('utf-8')
。
解决方案:
encoded_string = b'xd0x95xd1x85changes: xd0x92xd1x96nance Futures'
decoded_string = encoded_string.decode("utf-8")
print(decoded_string)