有相同的Unicode(標準化)table不同的編碼。例如,對於UTF-8編碼A
corresponds to0x0041
但對於UTF-16編碼相同A
是represented as0xfeff0041
。Windows使用Unicode數據類型的Unicode編碼(UTF-8,UTF-16,其他)
從這個brilliant article我瞭解到,當我用C++的Windows平臺的計劃,我處理Unicode的,我應該知道,這是在2個字節表示。但它沒有提到任何有關編碼的內容。 (即使它說x86 CPU是小端的,所以我知道這兩個字節是如何存儲在內存中的。)但是我也應該知道Unicode的編碼,以便我有關於符號如何存儲在內存中的完整信息。是否有任何固定的Unicode編碼的C + +/Windows程序員?
'A'不**代表UTF-16中的'0xfeff0041'。它在UTF-8中是「0x41」,在UTF-16中是「0x0041」。 –
http://www.fileformat.info/info/charset/UTF-16/list.htm這裏是我的信息的來源,正如我已經提到的。那麼它是如何存儲的? – Narek
你的源碼錯誤。所有這些值都不應該在它們前面有「feff」。 '0xFEFF'被用作UTF-16 BOM。 –