2013-12-22 128 views
2

我只是想知道0xFFFF是否是一個有效的Unicode字符。0xFFFF是否爲有效的Unicode字符?

當我使用下面的代碼:

CStringW strTempW; 
CString strTemp1; 
INT_PTR nLen; 

strTempW.Format(L"%c", 0xFFFF); 
nLen = strTempW.GetLength(); 

strTemp1 += strTempW; 
nLen = strTemp1.GetLength(); 

執行第一個代碼行strTempW.Format(L」%c」, 0xFFFF)後,我會得到一個長度爲1 strTempW,但不能看到它在Visual Studio監視窗口中第一個字符。

執行代碼行strTemp1 += strTempW後,我會得到長度爲0

這是令人困惑的我strTemp1。是否將0xFFFF作爲有效的Unicode代碼點?

+0

您是指代碼點還是字符編碼? – IInspectable

回答

9

轉到Unicode網站unicode.org/charts並在框中輸入FFFF。它會給你一個PDF下載(UFFF0.pdf這個字符代碼;不同的代碼不同的文件)。

你會發現,U + FFFF不是一個有效的Unicode字符:

FFFF <不是性格>

  • 值FFFF保證不會成爲一個Unicode字符在所有
+0

此外,每個平面中的所有*最後兩個字節被排除。 –

+0

謝謝,@KerrekSB。這並不令我感到意外,但我沒有證實它。我知道U + 10FFFF是Unicode中最大的值,不是一個字符,但我不想在沒有調查的情況下進行概括(而我現在也懶得調查)。 –

3

正如this偉大回答說,它不是,它是一個RESERV ed非字符。

相關問題