#cpp #кодировка #visual_cpp #перекодировка
Пишу библиотеку для принтера. На вход подается текст в формате UTF-8. Принтер печатает кириллицу в формате CP866(кириллица). Как преобразовать UTF-8 в CP866? Возможно есть специальные функции?
Ответы
Ответ 1
ifstream file("text.txt"); char pszCode[30]; file.getline(pszCode, 30); BSTR bstrWide; char pszAnsi[50]; int nLength; char* text = ""; nLength = MultiByteToWideChar(CP_UTF8, 0, pszCode, strlen(pszCode) + 1, NULL, NULL); bstrWide = SysAllocStringLen(NULL, nLength); MultiByteToWideChar(CP_UTF8, 0, pszCode, strlen(pszCode) + 1, bstrWide, nLength); nLength = WideCharToMultiByte(CP_OEMCP, 0, bstrWide, -1, NULL, 0, NULL, NULL); WideCharToMultiByte(CP_OEMCP, 0, bstrWide, -1, pszAnsi, nLength, NULL, NULL); SysFreeString(bstrWide); cout << pszAnsi << endl; В общем использовал в этот метод, как посоветовал VladD, в принципе все работает, хотя конечно я так и не понял, как работают эти две функции до конца. Но все равно спасибо!
Комментариев нет:
Отправить комментарий