2014-03-24 59 views
0

爲什麼我不能在gdb投u"string"wchar_t*用U交易「串」在gdb

(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"是一個無符號短數組,它與wchar數組幾乎相同。

+0

'wchar_t'是不是幾乎一樣'在Linux上簽名short',它幾乎一樣'unsinged'。在linux上,'wchar_t'用於UTF-32,_not_ UTF-16。 –

+0

你睜開了眼睛 – basin

回答

0

wchar_t與linux上的unsigned short幾乎相同,它幾乎與unsinged相同。在linux上,wchar_t適用於UTF-32,不適用於UTF-16。你將不得不使用一個Unicode庫來轉換(可能是ICU)。

你可以把它轉換爲char32_t*雖然。