Sujet : [VC++ 7.0] Conversion de chaine UNICODE en ANSI |
Harkonnen |
Yawp :hello: A tous ceux qui galèrent avec les chaines de caractères UNICODE devant être converties en ANSI, voici une solution possible, qui permet d'éviter de se taper la conversion octet par octet.
Cet exemple convertit une chaine source UNICODE en chaine dest ANSI. Il utilise les MFC
Code :
- void CunicodeDlg::ConvUNICODE()
- {
- char src[10] = 'T','\0','E','\0','S','\0','T','\0','\0','\0'}; // "TEST" en unicode
- CString ms(src);
- AfxMessageBox(ms); // affichera uniquement "T" :(
- char dest[256]={0};
- ::WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)src, -1, (LPSTR)dest, lstrlenW((LPCWSTR)src)+2, NULL, NULL);
- CString msg(dest);
- AfxMessageBox(msg); // Magique ! Affiche "TEST" :)
- }
|
A+ |
Harkonnen |
Yawp :hello: A tous ceux qui galèrent avec les chaines de caractères UNICODE devant être converties en ANSI, voici une solution possible, qui permet d'éviter de se taper la conversion octet par octet.
Cet exemple convertit une chaine source UNICODE en chaine dest ANSI. Il utilise les MFC
Code :
- void CunicodeDlg::ConvUNICODE()
- {
- char src[10] = 'T','\0','E','\0','S','\0','T','\0','\0','\0'}; // "TEST" en unicode
- CString ms(src);
- AfxMessageBox(ms); // affichera uniquement "T" :(
- char dest[256]={0};
- ::WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)src, -1, (LPSTR)dest, lstrlenW((LPCWSTR)src)+2, NULL, NULL);
- CString msg(dest);
- AfxMessageBox(msg); // Magique ! Affiche "TEST" :)
- }
|
A+ |