我在 char 数组中存储了一些 unicode 字符“лфи”。当我查看 (x/30s ) gdb 中的值时,它会显示如下内容:
0x80ac47c: "?\004>\004" 0x80ac482: "A\0048\004;\004L\004D\004>\004=\004:\0045\004/"
为什么会这样,这些 \004 代表什么?
您应该阅读gdb 的字符集文档,因为 gdb 似乎正在转义这些字符,而不是让终端显示它们。
请参阅Gdb Unicode 打印。如果您dbg_dump
在代码中重载该函数,则通过print dbg_dump("лфи")
在 gdb 中调用它有望调用您的重载函数,从而产生正确的 UTF-8 表示。请记住,在您的自定义中,dbg_dump
您可能需要明确表示您想要显示 Unicode 字符。