我需要讀取存儲在內存中的編碼字符串,該字符串存儲在LLDB的python腳本中。根據他們的文件,我可以使用ReadMemory(address, length, error),但我需要提前知道它的長度。從python的內存中獲取一個UTF-16字符串長度
UnicodeEncodeError: 'ascii' codec can't encode character u'\u018e' in position 12: ordinal not in range(128)
任何人都可以提出實現這一目標的一種方式: 如果不是當它絆倒在它不能解碼(即使使用了「忽略」選項)字符,且處理停止蟒的解碼功能不成? (使用「python」或「lldb python」實現)。我沒有原始字符串的長度。
謝謝。
你能顯示你的代碼嗎?很好,你顯示錯誤,但請顯示完整的回溯和提高錯誤的示例代碼。 –
有很多方法可以在內存中表示字符串。他們的文件是否告訴你他們是如何做到的? – tdelaney
這裏是一個內存轉儲的例子或我需要解析的內容: '(lldb)memory read 0x10142c838 0x10142c838:61 00 62 00 63 00 64 00 65 00 00 00 00 00 00 00 abcde ...... 0x10142c848:00 00 00 00 00 00 00 00 8e 01 00 00 00 00 00 00 ................' 似乎是和UTF-16-le編碼的字符串。但我不確定它是否總是空終止。我希望這給了更多的見解。 – Anubis