有人能帮我解决以下问题吗
我有一个在本地定义为str1 = 'CV\xca\x86\x11\x85\x01\xc8'
的str1和从另一层代码接收到的str2:
print str2 gives 'CV\xca\x86\x11\x85\x01\xc8'
所以他们看起来一模一样,但是:
print binascii.hexlify(str1) gives 4356ca86118501c8 or INT: 4852288325706645960
但是对于str2
print binascii.hexlify(str2) gives 43565c7863615c7838365c7831315c7838355c7830315c786338
or int 108206947078930905153039906183652663420044626270557263434900280
问题似乎是不同的编码
print chardet.detect(str1) gives me my local encoding: {'confidence': 0.73, 'language': '', 'encoding': 'Windows-1252'}
print chardet.detect(str2) gives {'confidence': 1, 'language': '', 'encoding': 'ascii'}
如何修改str2以获得与str1相同的十六进制或int值?你知道吗
您有一个带有文字反斜杠、
'x'
字符和十六进制数字的字符串:字符串的表示形式将反斜杠加倍,因此可以重新生成值。另一个字符串的表示没有这样的加倍,因为
\xhh
序列各自形成一个字符:比较单个字符:
您可以使用
string_escape
编解码器解码转义序列:相关问题 更多 >
编程相关推荐