boost::lexical_cast<std::wstring>() как?
От: maggres Россия  
Дата: 01.09.05 14:44
Оценка:
Hello Господа,

Пытаюсь сделать такое строковое преобразование:
ASCII => UTF8, для этого делаю так
ASCII=>setlocale()=>wchar_t=>setlocale()=>UTF8

Хочется и кажется логичным сделать так:

#include <iostream>
#include <string>
#include <locale>
#include <boost/lexical_cast.hpp>
int main(int argc, char * argv[])
{
    std::string ascii="тестовая строка в KOI8-R";

    std::setlocale(LC_ALL,"ru_RU.koi8r");
    std::wstring wstr = boost::lexical_cast<std::wstring>(ascii);

    std::setlocale(LC_ALL, "ru_RU.utf8");
    std::string utf8 = boost::lexical_cast<std::string>(wstr);

    return 0;
}


Однако ни GCC 3.4.3 ни 4.0.0 это не компилят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.