从 python 中的内存中获取 UTF-16 字符串长度



我需要读取一个 utf-16 编码的字符串,该字符串存储在 LLDB 的 python 脚本中的内存中。根据他们的文档,我可以使用ReadMemory(地址,长度,错误),但我需要提前知道它的长度。如果不是python的解码函数,当它偶然发现一个它无法解码的字符时失败(即使使用"忽略"选项),并且进程停止:

UnicodeEncodeError: 'ascii' codec can't encode character u'u018e' in position 12: ordinal not in range(128)

谁能提出实现这一目标的方法?(使用"python"或"lldb python"实现)。我没有原始字符串的长度。

谢谢。

字符串是否以 0 结尾?如果是这样,您可以一次读取 2 个字节,直到遇到0x0000,然后您就会知道您有一个完整的字符串。

如果你这样做,你会想给自己一个约束(例如,"我会在阅读后放弃 - 比如说 - 1MB 的数据",以防你遇到损坏的内存)。

最新更新