gpt4 book ai didi

python - 如何在普通字符串中保留 ASCII 值?

转载 作者:太空宇宙 更新时间:2023-11-03 13:56:28 26 4
gpt4 key购买 nike

我正在努力将整数值转换为高/低消息,如下所示:

def int2message(integer):
messageHigh=chr(integer//256)
messageLow=chr(integer%256)
return [str(messageHigh),str(messageLow)]

这是示例:

>>testValue=int2message(10)
>>print(testValue)
['\x00', '\n']

现在,我想将此结果附加到列表的末尾,如下所示:

['0xA2', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '00', '0n']
| |
high low

但我发现很难将 ASCII 值保存为普通字符串。我无法使用replace()删除\x\等普通字符串的操作。

当我分别打印 \x00\n 时,它们是不可见的。

有什么好的办法可以解决这个问题吗?有没有更好的格式将整数值转换为普通字符串?

最佳答案

假设您正在使用 ASCII 或其 8 位衍生品之一(为了能够打印 256 以下的所有代码点),您必须知道:

  • 32 以下的所有代码点都是控制字符。具体来说,'\x00' 是 NULL 字符,'\x0a'(或 '\n')是换行符
  • 字符'\x20' (32) 是空格字符
  • 只有 33 ('!') 和 126 ('~') 之间的代码点才是正常的可打印 ASCII 字符
  • 字符 127 是 DEL(不可打印)字符
  • 从 128 到 255 的字符根据字符集有不同的表示形式。例如,'\xe9' 在 Latin1 字符集中打印为 é,在 CP850 字符集中打印为 'Ú'

换句话来说,您可以以字符(或 Python 3 中的字节)形式存储任何低于 256 的值,但不能直接打印它们。如果要打印它们,请使用 hex 将它们转换为十六进制,或者使用 str 将它们转换为十进制值字符串。

关于python - 如何在普通字符串中保留 ASCII 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49571092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com