python编码十六进制,用00填充每个字符

2024-09-27 09:35:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要用00填充每个字符,作为转换为十六进制的字符串。在Python2.5.2中有什么方法可以做到这一点吗?你知道吗

例如

hextext = "H:\myfilepath.myfileending"
encodedhex = str(hextext.encode('hex'))
print encodedhex

它现在正在打印

483a5c6d7966696c65706174682e6d7966696c65656e64696e67

但应该打印出来

48003a005c00 etc.

另外,我希望所有的字符都是大写的-有什么方法可以做到这一点吗?你知道吗

我还想知道为什么十六进制有时会以这种方式填充00?你知道吗


Tags: 方法字符串方式etc字符encodeprinthex
1条回答
网友
1楼 · 发布于 2024-09-27 09:35:40

最简单的方法是

>>> hextext = "H:\myfilepath.myfileending"
>>> encodedhex = "".join(c.encode("hex")+"00" for c in hextext)
>>> encodedhex
'48003a005c006d007900660069006c00650070006100740068002e006d007900660069006c00650065006e00640069006e006700'
>>> encodedhex.upper()
'48003A005C006D007900660069006C00650070006100740068002E006D007900660069006C00650065006E00640069006E006700'

但是您确定要这个输出而不是UTF-16编码的字符串吗?你知道吗

>>> hextext.encode("utf-16-le")
'H\x00:\x00\\\x00m\x00y\x00f\x00i\x00l\x00e\x00p\x00a\x00t\x00h\x00.\x00m\x00y\x00f\x00i\x00l\x00e\x00e\x00n\x00d\x00i\x00n\x00g\x00'

相关问题 更多 >

    热门问题