我有一个关于python3中字符串转换的小问题
s = '\x001\x002\x001\x000\x005\x005\x000\x004\x000\x000\x00'
打印->;给出输出:
1 2 1 0 5 5 0 4 0 0
但是,当我尝试使用以下命令转换字符串时:
bytes(s, 'utf16').decode('utf16')
,我得到'\x001\x002\x001\x000\x005\x005\x000\x004\x000\x000\x000\x00'
以编程方式获得与打印相同的输出的方法是什么
Tags:
你只需要解码这个二进制文件,你就会得到答案
第二种解决方案:
输出
在第一个示例中,您打印字符串
s
,控制台将忽略\x00
。你做一个print(s)
在最后一行中,从python提示符获取字符串。如果您打印它:
print(bytes(s,'utf-16').decode('utf-16'))
,您将得到您想要的因此,Python提示符向您显示变量,并带有上下文(例如,您还可以看到
'
符号),但不能看到字符串的真实表示形式(您在print
中有哪些符号)增编:
print
将在其参数中打印字符串,最终调用str()
将参数转换为字符串。但是python提示符将打印变量的表示形式(以repr()
给出)。因此,您可以print(repr(bytes(s,'utf-16').decode('utf-16')))
获得与在python交互会话中获得的字符串相同的字符串,但作为字符串。您可以分配这样的函数(r = repr(bytes(...).decode(...))
,因此您有r[0]
is'
,r[1]
is\
,等等,而不是打印相关问题 更多 >
编程相关推荐