Форум программистов, компьютерный форум CyberForum.ru

Преобразование String UTF8 в 1251 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевести char* или byte* в Hex-строку http://www.cyberforum.ru/cpp-beginners/thread1249544.html
Собственно сабж. А ситуация такая: Есть функция принимающая толи char* толи BYTE* и мне нужно перевести этот массив в HEX-строку, при чом нужно просто перевести, не меняя оригинал во обще, ибо оригинал пойдет дальше на выход, а HEX-строка просто запишется в лог. Каким это образом можно сделать? Приоретет скорость..
C++ Как можно временно полностью выключить часть кода в проекте Добрый день. Вопрос о том, как можно временно полностью выключить часть кода в проекте. Пример: проект состоит из следующих файлов: #define FUNC #include "lib.h" http://www.cyberforum.ru/cpp-beginners/thread1249494.html
Как открыть исходники с++, если нет *.sln файла C++
Скачал исходники проекта (вот ссылка https://github.com/Y-Vladimir/SmartDeblur/tree/master/src). Пробовал открыть его через visual studio, но там нет .sln файла. Могу открыть только отдельные файлы, а как открыть его проектом?
C++ Перемещение по списку и вывод сообщения о текущем элементе
Доброго времени суток! Необходима помощь с кодом, разобраться что не так и как с этим бороться. Совсем недавно начал разбираться со структурами в С++ и вот наткнулся на связанный список и застрял Идея такова: Есть связанный список и указатель на первый эллемент. Нам необходимо перемещатся по списку и выводить сообщение в каком из элементов списка мы находимся..... Вот код: #include...
C++ Конвертация из int в char http://www.cyberforum.ru/cpp-beginners/thread1249483.html
есть длина строки которая int или даже 8 байтный long, но если в ней число < 255 то мне нужно её положить в 1 байт (char), но тут начинаються неожиданости int len = 165; char c = ( len & 255 ); // или просто len std::cout << (int)c << std::endl; вывод: -91 wtf? Как мне в c получить 165 ?
C++ Узнать, всё ли прочитал recv или нет Читаю данные при помоши recv, по лоике кода, если при повторном recv результат вернувшихся байт данныех = 0 то выходим из цыкла, но браузеры и многие сайты, после того как передали всё, ьольше ничего не возвращают, и recv в зависает в ожидании данных, как поступить правильно в таком случае? установит тайм аут на recv? - если да то как?, или как-то можно иначе узнать всё ли прочитал recv или нет?... подробнее

Показать сообщение отдельно
DrOffset
6460 / 3834 / 885
Регистрация: 30.01.2014
Сообщений: 6,629
31.08.2014, 21:49     Преобразование String UTF8 в 1251
Tester64, тут еще ведь нужно понимать, что L"строка" - это не UTF8. Это скорее UTF16 или USC2, если рассматривать windows.
Конвертирование же именно UTF8 в CP1251 под windows можно так сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
std::string UTF8_to_CP1251(std::string const & utf8)
{
    if(!utf8.empty())
    {
        int wchlen = MultiByteToWideChar(CP_UTF8, 0, utf8.c_str(), utf8.size(), NULL, 0);
        if(wchlen > 0 && wchlen != 0xFFFD)
        {
            std::vector<wchar_t> wbuf(wchlen);
            MultiByteToWideChar(CP_UTF8, 0, utf8.c_str(), utf8.size(), &wbuf[0], wchlen);
            std::vector<char> buf(wchlen);
            WideCharToMultiByte(1251, 0, &wbuf[0], wchlen, &buf[0], wchlen, 0, 0);
 
            return std::string(&buf[0], wchlen);
        }
    }
    return std::string();
}
 
Текущее время: 00:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru