我有一个操作两个字符串的函数。当我打电话时:
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==
结果发现,第一个字符串位于外部并具有正确的base64编码,而第二个字符串在python中使用
b64encode
进行编码,这会添加\n
。使字符串不相等。将其更改为b64encode
修复了错误。你知道吗相关问题 更多 >
编程相关推荐