2015-10-11 3 views
1

Я пытаюсь получить utf8 Код от unicode. напишите сейчас, у меня есть код, который преобразует любой INT в unicode, но застрял, чтобы продолжить его до UTF8. есть идеи?как конвертировать из unicode в utf8 в visual C++?

+1

Можете ли вы привести несколько примеров того, что вы пытались ГНФАР? –

+0

хорошо, актуален, я действительно не знаю, с чего начать. поэтому теперь ищите информацию –

+0

[WideCharToMultiByte] (https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx) –

ответ

0

Функция WideCharToMultiByte из Windows API правильно сделает это за вас. Вот WideCharToMultiByte reference page.

Чтобы использовать WideCharToMultiByte, вам нужно выбрать кодовую страницу. Общими страницами кода являются CP_ACP и CP_UTF8. CP_ACP используется для преобразования между ANSI и Unicode. CP_UTF8 используется для преобразования между UTF-8 и Unicode.

Вот пример:

string UnicodeToUTF8(const wstring& str) 
{ 
    char*  pElementText; 
    int iTextLen; 

    // wide char to multi char 
    iTextLen = WideCharToMultiByte(CP_UTF8, 
     0, 
     str.c_str(), 
     -1, 
     NULL, 
     0, 
     NULL, 
     NULL); 
    pElementText = new char[iTextLen + 1]; 
    memset((void*)pElementText, 0, sizeof(char) * (iTextLen + 1)); 
    ::WideCharToMultiByte(CP_UTF8, 
     0, 
     str.c_str(), 
     -1, 
     pElementText, 
     iTextLen, 
     NULL, 
     NULL); 
    string strText; 
    strText = pElementText; 
    delete[] pElementText; 
    return strText; 
} 
Смежные вопросы