Я хотел бы знать, есть ли простой способ определить, находится ли текст в буфере обмена в ISO 8859 или UTF-8?Как узнать, является ли текст в буфере обмена Windows ISO 8859 или UTF-8 в C++?
Вот мой текущий код:
COleDataObject obj;
if (obj.AttachClipboard())
{
if (obj.IsDataAvailable(CF_TEXT))
{
HGLOBAL hmem = obj.GetGlobalData(CF_TEXT);
CMemFile sf((BYTE*) ::GlobalLock(hmem),(UINT) ::GlobalSize(hmem));
CString buffer;
LPSTR str = buffer.GetBufferSetLength((int)::GlobalSize(hmem));
sf.Read(str,(UINT) ::GlobalSize(hmem));
::GlobalUnlock(hmem);
//this is my string class
s->SetEncoding(ENCODING_8BIT);
s->SetString(buffer);
}
}
}
ISO 8859-что? Есть 8859-1, 8859-2 и т. Д. – 2008-10-03 06:24:03
Часть проблемы также неизвестна. Вам нужно указать CF_LOCALE. Как только у вас это получится, весь вопрос в значительной степени ответил. – MSalters 2008-10-03 14:32:18