将带有转义字符和 ASCII 值的字符串转换为十六进制
Convert string with escaped characters and ASCII values into HEX
我有以下字符串,其中包含转义的十六进制值和 ASCII 字符
"'01B'2E'00 k'00"
反斜杠表示接下来的两个字符是十六进制值,字符串中的其他所有内容都是 ASCII
目标是将整个字符串转换为所有十六进制值
最终结果:
"'01'42'2E'00'20'20'20'6B'00"
::编辑::
我尝试了以下方法:
s = "'01B'2E'00 k'00"
r = [ ]
for x in s:
r.append(x.encode("hex"))
print r
问题是值(例如:''1E)被解释为''x01和E
然后我在网上遇到了以下问题来发布更新,并意识到我的问题已经得到了回答。
谢谢
这是一个包含转义十六进制值和 ascii 字符的 Python 字符串。
>>> s = r"'01B'2E'00 k'00"
>>> s
'''01B''2E''00 k''00'
>>> print(s)
'01B'2E'00 k'00
首先,我们使用string-escape
编解码器进行解码,将转义的十六进制值转换为字符表示。为了将string-escape
与十六进制值一起使用,我们需要将'x
用于转义指示器,而不仅仅是'
(这意味着八进制值iirc)
>>> escaped = s.replace('''', '''x').decode('string-escape')
>>> escaped
''x01B.'x00 k'x00'
>>> print escaped
B. k
我们的某些字符不可打印。但结果是我们所有的字符都是十六进制值/字符。
但是,如果要转换转义十六进制表示中的所有字符,则需要显式转换为十六进制值:
>>> h = ''.join('''' + char.encode('hex') for char in escaped)
>>> h
'''01''42''2e''00''20''20''20''6b''00'
>>> print h
'01'42'2e'00'20'20'20'6b'00
请注意,字节到字节编码在 Python3 中已弃用。您可以改用binascii
.hexlify
和.unhexlify
方法。
您可以使用
re.split()
在Python中标记字符串:
>>> import re
>>> data = r"'01B'2E'00 k'00"
>>> L = re.split(r'((?:''{hex}{hex})+)'.format(hex='[0-9a-fA-F]'), data)
>>> L
['', '''01', 'B', '''2E''00', ' k', '''00', '']
>>> L[::2] = [''.join('''' + c.encode('hex') for c in s) for s in L[::2]]
>>> print ''.join(L)
'01'42'2E'00'20'20'20'6b'00
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在 Javascript 中将变量的值从字符串转换为整数
- 将字符串转换为格式化日期
- IE在将字符串转换为日期时从日期中删除4小时
- node.js将字符串转换为要上传到Web服务器的文件
- 将字符串转换为JS对象
- 在js中将字符串转换为十六进制
- 试图了解如何使用parseFloat将字符串转换为数字
- 如何在html中将字符串转换为数字?以及如何将变量传递到scriptlet代码中
- 将字符串转换为GWT中的JSON对象(JSNI)
- 如何使用Razor显示模板将字符串转换为html字符串
- 将字符串转换为数组编号Javascript
- js字符串转换为具有两个值的对象
- 转换<a>使用jQuery将文本字符串转换为dom元素
- Jquery-将字符串转换为reg exp对象
- 使用JavaScript将客户端日期/时间字符串转换为JSON日期/时间串
- 将JavaScript字符串转换为整数
- moment js,将EST字符串转换为UTC
- 如何在javascript中将字符串转换为有效日期
- 通过JQuery将字符串转换为JSON