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

Преобразовать кодировку utf-8 в cp1251 и обратно - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как узнать в програме сколько раз числа меняются с чётного на нечётное? http://www.cyberforum.ru/cpp-beginners/thread967864.html
Помогите.. такая задача... Нужно ввести числа и узнать сколько раз они поменялись с чётного на нечётное... очень надо
C++ C шагом 0.05 вставить в массив отрицательные значения функции. Дана функция F(x)= 32*(e^(-x))*cos^2(x). C шагом 0.05 вставить в массив отрицательные значения функции. Вот моё решение, и оно не пашет =( : #include <iostream> #include <cstdlib> #include <cmath> using namespace std; int main(int argc, char** argv) { int mas; http://www.cyberforum.ru/cpp-beginners/thread967860.html
C++ Калькулятор простой дополнить несколькими функциями
Всем доброго времени суток! =) В общем, у меня было задание написать одну цельную программу - калькулятор простой, который выполнял бы всего 4 функции: "+ - / *" это первый модуль типа главный и потом нужно создать второй файл в проекте, второй модуль (типа обновление или дополнение), и дописать в нем еще несколько функций, типа дополнить калькулятор новыми функциями (например, корень из числа,...
C++ Модуль числа
|1-|x||
C++ Обработчики ошибок try catch http://www.cyberforum.ru/cpp-beginners/thread967849.html
Друзья, вот есть задача у меня решенная, вот условие: Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию (срочный, обычный) и тариф (плата в рублях за минуту). Определить дату такого телефонного...
C++ Отслеживание USB флешек Доброго времени суток. Хотелось бы услышать, как корректно определить USB флэшку? Необходимость появилась в этом, потому что надо сделать запрет на открытие флэшки на компе. И при запрете не запретить клаву с мышкой USB. Можете подкинуть примеры по определению флэшек? подробнее

Показать сообщение отдельно
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
04.10.2013, 09:40  [ТС]     Преобразовать кодировку utf-8 в cp1251 и обратно
Я сам не делал я готовую функцию нашол готовую построеную на винапи или хз я в нее не вникал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
string Utf8_to_cp1251(const char *str)
{
    string res;
    int result_u, result_c;
 
    result_u = MultiByteToWideChar(CP_UTF8,
        0,
        str,
        -1,
        0,
        0);
 
    if (!result_u)
        return 0;
 
    wchar_t *ures = new wchar_t[result_u];
 
    if(!MultiByteToWideChar(CP_UTF8,
        0,
        str,
        -1,
        ures,
        result_u))
    {
        delete[] ures;
        return 0;
    }
 
    result_c = WideCharToMultiByte(
        1251,
        0,
        ures,
        -1,
        0,
        0,
        0, 0);
 
    if(!result_c)
    {
        delete [] ures;
        return 0;
    }
 
    char *cres = new char[result_c];
 
    if(!WideCharToMultiByte(
        1251,
        0,
        ures,
        -1,
        cres,
        result_c,
        0, 0))
    {
        delete[] cres;
        return 0;
    }
    delete[] ures;
    res.append(cres);
    delete[] cres;
    return res;
}
мне нужно было щас определять в какой кодировке сервер присылает текст, но и тут разрешилось, сервер присылает в загаловке в какой кодировке отображать текст например charset=UTF-8 или там может сп1251, а мб и в левой какой нить, те просто пропустим. Все сайты как правило стараются на utf-8 сделать но в рунете очень много, наверно процентов 90% всех сайтов сделано в сп1251. Просто выдирать эту строчку и смотреть в какой кодировке.

Добавлено через 1 минуту
Мне щас главное просто работающий прототип сделать, потом уже если что модернизирую с iconv.

Добавлено через 21 час 8 минут
Все таки подумал и решил iconv установить, но чо то не найду где ее скачать, и примеров использования нету.

Добавлено через 3 минуты
Вообще что бы не долго думать я вычитал что можно мою функцию доработать для остальных кодировок, там вроде говорится что переводим сначала в utf-16, потом в любую другую кодировку, так от ее можно доработать и переводить в любую кодировку.

Добавлено через 19 минут
От функция:
C++
1
2
3
4
5
6
7
8
result_c = WideCharToMultiByte(
        CP_KOI8,
        0,
        ures,
        -1,
        0,
        0,
        0, 0);
мне нужно в koi8-r перевести, с какой туда параметр передать? Я уже пробовал: koi8-r, koi8, KOI8 CP_KOI8 нифига не работает.

Добавлено через 15 минут
Ладно разобрался, там ничего изменять не нада оставить как и было 1251, а коi8r это 20866 кодировка.
 
Текущее время: 08:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru