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

Из UTF-8 коды символов CP866 - C++

Восстановить пароль Регистрация
 
andrka
1 / 1 / 0
Регистрация: 30.12.2013
Сообщений: 10
26.10.2015, 09:08     Из UTF-8 коды символов CP866 #1
Подскажите плиз. Есть строка в UTF-8, из нее необходимо получить char[] состоящий из кодов этих символов в CP866
Мысли такие, с помощью setlocale и wcstombs преобразовать строку в многобайтовый массив.
Потом поэлементно получать код символа из записывать в буфер.
Может есть варианты лучше?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2015, 09:08     Из UTF-8 коды символов CP866
Посмотрите здесь:

Коды символов C++
перевести коды символов C++
Вывод UTF-8 символов на стандартное ус-во C++
C++ Hex коды символов из char* в стринг
Коды символов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
26.10.2015, 09:21     Из UTF-8 коды символов CP866 #2
Лучше - это вообще не пользоваться древними кодировками.
Для Windows сначала MultiByteToWideChar(CP_UTF8,...), затем WideCharToMultiByte(CP_OEMCP,...).
andrka
1 / 1 / 0
Регистрация: 30.12.2013
Сообщений: 10
26.10.2015, 09:51  [ТС]     Из UTF-8 коды символов CP866 #3
Цитата Сообщение от nmcf Посмотреть сообщение
Лучше - это вообще не пользоваться древними кодировками.
Осталось только это объяснить производителю весов Teraoka)))
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
26.10.2015, 09:58     Из UTF-8 коды символов CP866 #4
А что за задача? В весы нужно текст передавать? А utf8 откуда берётся?
andrka
1 / 1 / 0
Регистрация: 30.12.2013
Сообщений: 10
26.10.2015, 10:36  [ТС]     Из UTF-8 коды символов CP866 #5
Загрузка списка товаров в весы. UTF-8 берется из 1C(там это стандартное представление юникода).
Весы требуют данные в определенном формате. Сам протокол обмена расписывать смысла, думаю, нет.
Например для загрузки в весы товара КОЛБАСА им надо передать строку 8A8E8B81809180
т. е. char[]={0x8a,0x8e,0x8b,0x81,0x80,0x91,0x80} шестнадцатеричные коды символов cp866

Или в десятичной системе т.е. char[]={138,142....}
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
26.10.2015, 10:48     Из UTF-8 коды символов CP866 #6
Какого года весы? Кодировка 1251 как-то логичнее.
andrka
1 / 1 / 0
Регистрация: 30.12.2013
Сообщений: 10
26.10.2015, 11:04  [ТС]     Из UTF-8 коды символов CP866 #7
Какого года не знаю. В 2004 они уже были и выпускаются до сих пор) Производитель Teraoka Seiko
zer0mail
2176 / 1859 / 187
Регистрация: 03.07.2012
Сообщений: 6,615
Записей в блоге: 1
26.10.2015, 12:29     Из UTF-8 коды символов CP866 #8
Перекодировка для Win1251:
C++
1
2
3
4
5
6
7
8
9
10
11
        
while ((inchar=fgetc(fidin))!=EOF)  {
// D0 (208) 'Р', D1(209) 'С' 
     if (inchar==208||inchar==209) {
           outchar=(inchar<<6)+(fgetc(fidin)&63)+176; 
           if (outchar==13489) outchar=168; // Ё
           if (outchar==13569) outchar=184; // ё
     }
     else outchar=inchar;
     fputc(outchar,fidout); // вывод младшего байта
}
Для ДОСа надо:
1. 176->128 (код "А" кириллицы)
2. учесть, что "рсту.." сдвинуты
3. изменить коды для Ёё
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
26.10.2015, 13:20     Из UTF-8 коды символов CP866 #9
zer0mail, зачем это делать вручную?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2015, 13:27     Из UTF-8 коды символов CP866
Еще ссылки по теме:

Коды таблицы символов ASCII C++
C++ Коды символов ANSI (CP-1251)
Коды символов ASCII C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zer0mail
2176 / 1859 / 187
Регистрация: 03.07.2012
Сообщений: 6,615
Записей в блоге: 1
26.10.2015, 13:27     Из UTF-8 коды символов CP866 #10
А мне не в лом, да и работать будет где угодно (хоть в ДОСе или TurboC древнем)
Yandex
Объявления
26.10.2015, 13:27     Из UTF-8 коды символов CP866
Ответ Создать тему
Опции темы

Текущее время: 00:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru