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

Чтение файла (с кракозябрами) с однобайтовой кодировкой, конвертация в UTF-8 и вывод в другой файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ При запуске флешки запустить программу и нажать Enter http://www.cyberforum.ru/cpp/thread1824376.html
Требуется создать программу (необязательно на си), которая бы при запуске флешки запускала бы определенный файл (OZZZZ.exe) и нажимала enter
C++ Таблица битовых переходов Доброго времени суток! Появилась необходимость замены битовых комбинаций по заранее сгенерированным правилам. Суть проблемы такова: имеется битовый поток, необходимо пятибитовые комбинации заменить на другие. Предположим есть текстовый документ, в котором два столбца, в одном исходная комбинация бит, а через пробел комбинация на которую необходимо заменить. Помогите пожалуйста с процедурой... http://www.cyberforum.ru/cpp/thread1824304.html
C++ Написать программу для моделирования потоков данных в описанном в условии процессе
Некая программа может получать входные данные от пользователя и изредка от другой программы, причем данные, предоставляемые другой программой, имеют более высокий приоритет в сравнении с пользователем. Напишите программу для моделирования потоков данных в описанном процессе (структура данных – дек с ограниченным выходом). как прога может получать данные от другой проги? вот дек struct Node{...
C++ Ошибка MySQL
Здравствуйте. Решил попробовать использовать таблицы MySQL в программе С++, но при подключении "mysql.h" компилятор начинает ругаться, мол "идентификатор SOСKET не определен", и показывает на строку int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen, unsigned int timeout); в mysql_com.h. Код моей программы: #include "stdafx.h" #include <stdio.h> #include <mysql.h>...
C++ Шифрование файла методом Вернама http://www.cyberforum.ru/cpp/thread1821680.html
Собственно кодирую текстовый файл методом Вернама и столкнулся с проблемой: уже в зашифрованном файле присутствуют символы SUB (которые сигнализирует о конце файла), я считываю побайтово функцией ifstream.get, вопрос в том, как сделать так, чтобы считывание не заканчивалось на этом символе, при этом этот символ естественно участвует в расшифровке соответствующего ему символа, конечно можно бы...
C++ Вызов sprintf для типа не соответствующего формату Какова реакция sprintf на передачу в нее значения с типом не соответствующим указанному в формате (UB не предлагать :) )? К примеру есть код int64_t x; char buf; sprintf(buf, "%i", x); //1-й вариант sprintf(buf, "%i", (int)(x & 0xFFFFFFFF)); //2-й вариант Оба варианта работают. Однако, программа с первым вариантом иногда падает (статистика для второго варианта еще не сформирована). Такое... подробнее

Показать сообщение отдельно
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
12.10.2016, 22:51     Чтение файла (с кракозябрами) с однобайтовой кодировкой, конвертация в UTF-8 и вывод в другой файл
Простая табличная подстановка.
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
static int  pXLIT[ASCII_SIZE] =
{
   0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007,
   0x00000008, 0x00000009, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000D, 0x0000000E, 0x0000000F,
   0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000014, 0x00000015, 0x00000016, 0x00000017,
   0x00000018, 0x00000019, 0x0000001A, 0x0000001B, 0x0000001C, 0x0000001D, 0x0000001E, 0x0000001F,
   0x00000020, 0x00000021, 0x00000022, 0x00000023, 0x00000024, 0x00000025, 0x00000026, 0x00000027,
   0x00000028, 0x00000029, 0x0000002A, 0x0000002B, 0x0000002C, 0x0000002D, 0x0000002E, 0x0000002F,
   0x00000030, 0x00000031, 0x00000032, 0x00000033, 0x00000034, 0x00000035, 0x00000036, 0x00000037,
   0x00000038, 0x00000039, 0x0000003A, 0x0000003B, 0x0000003C, 0x0000003D, 0x0000003E, 0x0000003F,
   0x00000040, 0x00000041, 0x00000042, 0x00000043, 0x00000044, 0x00000045, 0x00000046, 0x00000047,
   0x00000048, 0x00000049, 0x0000004A, 0x0000004B, 0x0000004C, 0x0000004D, 0x0000004E, 0x0000004F,
   0x00000050, 0x00000051, 0x00000052, 0x00000053, 0x00000054, 0x00000055, 0x00000056, 0x00000057,
   0x00000058, 0x00000059, 0x0000005A, 0x0000005B, 0x0000005C, 0x0000005D, 0x0000005E, 0x0000005F,
   0x00000060, 0x00000061, 0x00000062, 0x00000063, 0x00000064, 0x00000065, 0x00000066, 0x00000067,
   0x00000068, 0x00000069, 0x0000006A, 0x0000006B, 0x0000006C, 0x0000006D, 0x0000006E, 0x0000006F,
   0x00000070, 0x00000071, 0x00000072, 0x00000073, 0x00000074, 0x00000075, 0x00000076, 0x00000077,
   0x00000078, 0x00000079, 0x0000007A, 0x0000007B, 0x0000007C, 0x0000007D, 0x0000007E, 0x0000007F,
   0x000082D0, 0x000083D0, 0x009A80E2, 0x000093D1, 0x009E80E2, 0x00A680E2, 0x00A080E2, 0x00A180E2,
   0x00AC82E2, 0x00B080E2, 0x000089D0, 0x00B980E2, 0x00008AD0, 0x00008CD0, 0x00008BD0, 0x00008FD0,
   0x000092D1, 0x009880E2, 0x009980E2, 0x009C80E2, 0x009D80E2, 0x00A280E2, 0x009380E2, 0x009480E2,
   0x000098C2, 0x00A284E2, 0x000099D1, 0x00BA80E2, 0x00009AD1, 0x00009CD1, 0x00009BD1, 0x00009FD1,
   0x0000A0C2, 0x00008ED0, 0x00009ED1, 0x000088D0, 0x0000A4C2, 0x000090D2, 0x0000A6C2, 0x0000A7C2,
   0x000081D0, 0x0000A9C2, 0x000084D0, 0x0000ABC2, 0x0000ACC2, 0x0000ADC2, 0x0000AEC2, 0x000087D0,
   0x0000B0C2, 0x0000B1C2, 0x000086D0, 0x000096D1, 0x000091D2, 0x0000B5C2, 0x0000B6C2, 0x0000B7C2,
   0x000091D1, 0x009684E2, 0x000094D1, 0x0000BBC2, 0x000098D1, 0x000085D0, 0x000095D1, 0x000097D1,
   0x000090D0, 0x000091D0, 0x000092D0, 0x000093D0, 0x000094D0, 0x000095D0, 0x000096D0, 0x000097D0,
   0x000098D0, 0x000099D0, 0x00009AD0, 0x00009BD0, 0x00009CD0, 0x00009DD0, 0x00009ED0, 0x00009FD0,
   0x0000A0D0, 0x0000A1D0, 0x0000A2D0, 0x0000A3D0, 0x0000A4D0, 0x0000A5D0, 0x0000A6D0, 0x0000A7D0,
   0x0000A8D0, 0x0000A9D0, 0x0000AAD0, 0x0000ABD0, 0x0000ACD0, 0x0000ADD0, 0x0000AED0, 0x0000AFD0,
   0x0000B0D0, 0x0000B1D0, 0x0000B2D0, 0x0000B3D0, 0x0000B4D0, 0x0000B5D0, 0x0000B6D0, 0x0000B7D0,
   0x0000B8D0, 0x0000B9D0, 0x0000BAD0, 0x0000BBD0, 0x0000BCD0, 0x0000BDD0, 0x0000BED0, 0x0000BFD0,
   0x000080D1, 0x000081D1, 0x000082D1, 0x000083D1, 0x000084D1, 0x000085D1, 0x000086D1, 0x000087D1,
   0x000088D1, 0x000089D1, 0x00008AD1, 0x00008BD1, 0x00008CD1, 0x00008DD1, 0x00008ED1, 0x00008FD1
};
C++
1
2
3
4
5
6
7
8
static void Cyrillic_2_UTF8(DWORD& rDst,BYTE bySrc)
{  
   rDst = 0;  // Reset
 
   int   iRet = pXLIT[bySrc];
   
   strcat((char*)&rDst,(char*)&iRet); 
}
C++
1
2
3
4
5
6
7
8
9
10
11
   for (DWORD ii = 0; ii < dwSize; ++ii)
   {
      DWORD    dwTemp = 0;
 
      Cyrillic_2_UTF8(dwTemp,pBuf[ii]);
 
      if (dwTemp)
      {
         fprintf(pOut,"%s",(char*)&dwTemp);
      }
   }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru