这怎么可能?我正在使用python3。
a= b"\xfc\x48\x83\xe4\xf0\xe8"
b= "\xfc\x48\x83\xe4\xf0\xe8"
if (a == b.encode('ascii',errors='replace')):
print ("Winner")
我尝试过其他类型的错误,但是什么也没有。如果我没有输入任何错误,则会弹出一个错误,提示“编解码器无法在位置0编码字符'\ xfc':序数不在range(128)中”。我已经阅读了the official manual 上的手册,但找不到任何好的答案。
从您链接的文档中:
编码不必处理所有可能的Unicode字符,大多数编码都不需要。例如,Python的默认编码是“ ascii”编码。将Unicode字符串转换为ASCII编码的规则很简单。对于每个代码点:
如果代码点为<128,则每个字节与代码点的值相同。
如果代码点为128或更大,则无法使用此编码表示Unicode字符串。 (在这种情况下,Python引发UnicodeEncodeError异常。)
看起来像第一个代码点\xfc > 128
,这意味着您无法用ascii
编码表示它。