如何比较python中具有不同编码的字符串?

时间:2019-06-26 03:58:47

标签: python string equals

我有一个可以处理2个字符串的函数。当我打电话时:

print("%s %s" % (first, second))

我知道了

role/token:9Gxc8Q role/token:9Gxc8Q

但是first == second是错误的。

我认为存在编码问题,并尝试了以下方法:

frsts.encode('utf-8') == second.encode('utf-8')

又是假的。

有什么办法比较这些字符串吗?

已更新

print("%s %s" % (type(first), type(second))-> <type 'unicode'> <type 'str'>

print("%r %r" % (first, second))-> <type 'unicode'> <type 'str'>

将字符串值编码为base64,然后进行比较:cm9sZS90b2tlbjo5R3hjOFE==cm9sZS90b2tlbjo5R3hjOFE==

1 个答案:

答案 0 :(得分:0)

事实证明,第一个字符串在外部并且具有正确的base64encoding,而第二个字符串则在Python中使用b64encode进行了编码,并添加了\n。并使字符串不相等。将其更改为b64encode可修复该错误。