Re[9]: как в пост передать юникодную строку?
От: sidorov18 США  
Дата: 13.08.09 12:20
Оценка:
Здравствуйте, Makht, Вы писали:

M>Тебе нужно преобразовать твою WideChar строку в мильтибайт строку в чарсете UTF-8.

M>т.е. все что нужно это заменить вызова макроса W2A на вызов функции WideCharToMultibyte и соответствующими параметрами.
M>Макрос W2A кстати тоже ее вызывает, но конвертирает в пультибайт строку в чарсете, который у тебя в реестре прописан на дефолтный (скорее всего 1251 иои 1252.)


Ну да. так и было сделано.


CStringA UTF16toUTF8(const CStringW& utf16)
{
    CStringA utf8;
    int len = WideCharToMultiByte(CP_UTF8, 0, utf16, -1, NULL, 0, 0, 0);
    if (len>1)
    { 
        char *ptr = utf8.GetBuffer(len-1);
        if (ptr) WideCharToMultiByte(CP_UTF8, 0, utf16, -1, ptr, len, 0, 0);
        utf8.ReleaseBuffer();
    }
    return utf8;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.