我發現有一個叫做System.UnicodeString.BytesOf
的API來獲取UnicodeString
的字節數組。BytesOf()和wchar_t數組
但是,我不知道使用該函數的好處。
相反,我們可以使用wchar_t
陣列,如:
wchar_t szBuf[100];
wcscpy(szBuf, str.c_str());
什麼是BytesOf
功能比較使用wchar_t
陣列那些用處?
我發現有一個叫做System.UnicodeString.BytesOf
的API來獲取UnicodeString
的字節數組。BytesOf()和wchar_t數組
但是,我不知道使用該函數的好處。
相反,我們可以使用wchar_t
陣列,如:
wchar_t szBuf[100];
wcscpy(szBuf, str.c_str());
什麼是BytesOf
功能比較使用wchar_t
陣列那些用處?
BytesOf()
將字符串轉換爲字節數組。在重載版本以UnicodeString
作爲輸入的情況下,它將UnicodeString
數據轉換爲操作系統的默認Ansi字符集,然後將結果數據複製到陣列(IOW,BytesOf(UnicodeString)
僅僅是TEncoding::Default->GetBytes(UnicodeString)
的包裝)。
謝謝你的回覆,Remy Lebeau。所以,UnicodeString被轉換爲默認的Ansi字符集,而不是廣泛的字符集? – sevenOfNine
這是正確的。有單獨的'WideBytesOf()'和'PlatformBytesOf()'函數將'UnicodeString'轉換爲UTF-16編碼字節數組(它們都在內部使用'TEncoding :: Unicode-> GetBytes()')而不是Ansi 。 –
感謝您的進一步信息。我很感激。 – sevenOfNine
正確的名稱是'System.SysUtils.BytesOf()',它有一個重載版本,它接受一個'UnicodeString'作爲輸入。 –