为什么我不能将u"string"
投放到gdb中的wchar_t*
?
(gdb) print (wchar_t*)L"abc"
$60 = 0x568ae3b0 L"abc"
(gdb) print (wchar_t*)u"abc"
$61 = 0x567c5078 L"\x620061c\020I\x56640948\x567c50d0\x567c4f80\x567c4f30"
u"string"
是一个unsigned short数组,与wchars数组几乎相同。
答案 0 :(得分:0)
wchar_t
与linux上的unsigned short
几乎不同,它与unsinged
几乎相同。在linux上,wchar_t
用于UTF-32,而不是UTF-16。您必须使用Unicode库进行转换(可能是ICU)。
您可以将它投射到char32_t*
。