我需要读取一个 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 的数据",以防你遇到损坏的内存)。