Народ, как конвертировать строку из формата koi8-r?
Например, строка "абв" выглядит в koi8-r как c1 c2 d7 ("БВЧ")
а надо e0 e1 e2, т.е. "абв"
Попробовал так:
CPINFOEX cpinfo;
BOOL res = GetCPInfoEx(20866, 0, &cpinfo);
res = GetCPInfoEx(20866, 0, &cpinfo);
cout << cpinfo.CodePage <<" "<< cpinfo.CodePageName << endl;
//-------------------------
WORD landId = MAKELANGID(LANG_RUSSIAN, 0x01);
LCID lcId = MAKELCID(landId, SORT_DEFAULT);
char destBuf[4], srcStr[4] = "БВЧ";
int writteninclnull;
//как подставить localeId для koi8-r?? Может вообще все это неправильно?
writteninclnull = LCMapString(lcId, LCMAP_HALFWIDTH, srcStr, 4, destBuf, 4);
if(writteninclnull = 0)
Error(GetLastError());
cout << destBuf << endl;
Ну ни в жизь бы не подумал, что сработает такая **рня!
WCHAR wStr[128];
char *pch = ptrToMyFuckingkoi8rString;
int pchsize = (int)strlen(pch);
MultiByteToWideChar(0x5182, 0, pch, pchsize+1, wStr, 128);
WideCharToMultiByte(1251, 0, wStr, 128, pch, pchsize+1, NULL, NULL);