Windows使用UTF-16LE。該字符串應該使用前綴L
創建。要使用UTF8,您可以使用u8
前綴聲明該字符串。例如:
const char* text = u8"ヽ(⌐■_■)ノ♪♬E";
然後,你必須使用MultiByteToWideChar
到UTF8轉換爲UTF-16和WinAPI的使用。請注意,要使用u8
,您需要較新的編譯器,如VS2015。
首先使用UTF16比較容易。例如:
const wchar_t* text = L"ヽ(⌐■_■)ノ♪♬E";
int len = wcslen(text);
HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, (len + 1) * sizeof(wchar_t));
wchar_t* buffer = (wchar_t*)GlobalLock(hMem);
wcscpy_s(buffer, len + 1, text);
GlobalUnlock(hMem);
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_UNICODETEXT, hMem);
CloseClipboard();
什麼操作系統? – Adrian
@Adrian:'MultiByteToWideChar'是一個Windows AP,所以Windows。 –
如果您決定使用它,這在SDL中非常容易 –