python - 将字符串中的十六进制字符附加到字符串

标签 python string hex character

我还没有找到解决这个问题的方法:

脚本从用户输入接收一个字符串,例如:

"ABCD.00.00"

.表示十六进制字符,脚本应输出以下字符串:

"ABCD\x00\x00"

我尝试了以下方法:

cmd = "ABCD.00.00"
if "." in cmd:
    splitted = cmd.split(".")
    cmd = splitted[0]
    i = 1
    while i < len(splitted):
        cmd = cmd+"\\x"+splitted[i]
        i = i + 1
return(cmd)

但是返回的字符串有两个反斜杠,因此无法识别十六进制字符:

"ABCD\\x00\\x00"

有人有解决这个问题的线索吗? 非常感谢提前

最佳答案

发生这种情况是因为 unicode 字符串不能按照文档直接附加到字符串(utf-8)。

编码不必处理所有可能的 Unicode 字符,大多数编码也不需要。例如,将 Unicode 字符串转换为 ASCII 编码的规则很简单;对于每个代码点:

如果代码点<128,则每个字节与代码点的值相同。 如果代码点为 128 或更大,则无法用此编码表示 Unicode 字符串。 (在这种情况下,Python 会引发 UnicodeEncodeError 异常。)

如果您要打印函数的输出,它将为您提供所需的输出

>>> a="ABCD\\x00\\x00"
>>> print(a)
ABCD\x00\x00

关于python - 将字符串中的十六进制字符附加到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54782058/

相关文章:

python - 运行不带 "python"关键字的 python 脚本

c++ - 我需要显示最后一个单词在字符串中出现了多少次

javascript - 如何将大数据发布到服务器?

vb.net - 十六进制比较 (If ((&H7F And &H80) = &H80)) 意味着什么?

arrays - 如何将固定长度的十六进制 rune 数组转换为单个整数

python - 如何即时判断 '0'到 '9'在特定范围内被使用了多少次

python - python 中带引号的分隔符游标 copy_from

Python:为什么 MRO 中的最后一个类在其 super 的 __init__ 调用中应该有零参数,否则会出现运行时异常

c - 给定两个字符串,找到两个字符串共有的单词

python - 从图像中读取十六进制数据时出现问题 - python 自动转换为字符串