1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
string codageDataUTF8_TO_ISOX(int code, LPCSTR csUTF8)
{
try {
int lenUTF8 = (int)strlen(csUTF8);
wchar_t wc[MAXWIDECHAR];
memset(wc,0,MAXWIDECHAR*sizeof(wchar_t));
//UTF8 -> WIDECHAR
int iRet= MultiByteToWideChar(
CP_UTF8, // code page
MB_ERR_INVALID_CHARS, //0, // character-type options
csUTF8, // string to map
lenUTF8, // number of bytes in string
wc, // wide-character buffer
MAXWIDECHAR-1 // size of buffer
);
if (!iRet){
// display error
// ...bla bla..
return "";
}
// WIDECHAR -> code
int lenWC = (int)wcslen(wc);
char c[MAXISOCHAR];
memset(c,0,MAXISOCHAR);
//LPCSTR p="\x27";
LPCSTR p="'";
iRet=WideCharToMultiByte(
code, // code page-
0, // performance and mapping flags
wc, // wide-character string
lenWC, // number of chars in string
c, // buffer for new string
MAXISOCHAR-1, // size of buffer
p, // NULL, // default for unmappable chars
NULL // set when default char used
);
if (!iRet){
// display error
// ...bla bla..
return "";
}
return c;
}
// catch
// ....bla bla
catch (...) //to be sure
{
// ....bla bla
}
} |
Partager