Официальный форум СВД Встраиваемые Системы
27 Апрель, 2024, 01:41:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: iconv для QNX4  (Прочитано 15756 раз)
Олег Большаков
Легенда

Сообщений: 3140



« : 15 Февраль, 2010, 00:56:26 »

Библиотека iconv для QNX4

ICONV -- это 1) библиотека (iconv.lib) для переконвертирования между различными кодировками символов; 2) утилита командной строки (iconv) и 3) набор кодировок.

Синтаксис утилиты iconv достаточно простой:

Код:
iconv -f <исходная кодировка> -t <выходная коировка>

Исходные данные программа берёт из стандартного потока ввода, а выводит в стандартный поток вывода. Для перекодирования файла readme.txt из русской кодировки Windows (cp1251) в русскую кодировку DOS (cp866) можно вызвать утилиту iconv следующим образом:

Код:
$ iconv -f cp1251 -t cp866 < readme.txt > readme_cp866.txt

В дистрибутив для QNX4 входят библиотека с заголовочным файлом, утилита iconv и набор таблиц со стандартными кодировками. Дополнительно включены таблицы с русской кодировкой cp1251, а также с кодировками EBCDIC и IBM-1141 для корректного прохождения тестов libxml2 для QNX4.

Ссылки:

 - Исходные коды для *BSD.
 - Дистрибутив для QNX4: iconv-2.0-qnx4-bin-20100214.tar.gz.
 - Исходные коды для QNX4 будут доступны позже.
« Последнее редактирование: 18 Январь, 2023, 12:09:06 от Леонид Шадевский » Записан
Василий Дмитриев
Ветеран

Сообщений: 364



« Ответ #1 : 15 Февраль, 2010, 15:45:51 »

Очень полезно.   I'm so happy
Записан

Санкции! Запрещаю Бараку Обаме и членам конгресса США читать мои посты!
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #2 : 22 Февраль, 2010, 01:40:27 »

Хочу поделиться скриптом (под спойлером), который я использую для конвертирования текстовых файлов из одной кодировки в другую. Достаточно сохранить скрипт с именем, например, fromwin и наделать ссылок на этот файл с именами fromkoi, fromutf8, towin и т.д. Не забывает задать правильную системную кодировку (переменная ENC), в QNX это обычно cp866. В слаквари можно делать симлинки, но в QNX надо обязательно делать жёсткие ссылки. И опять-таки, убеждаемся, что пользователь, от имени которого запускается скрипт имеет права на создание временного файла.

После всех этих процедур можно осуществлять перекодировку inplace, т.е. в тот же самый файл, например, так:

Код:
$ fromwin readme.txt

(щёлкните чтобы показать/скрыть)
« Последнее редактирование: 25 Февраль, 2010, 00:23:53 от Олег Большаков » Записан
LH
Ветеран

Сообщений: 345


« Ответ #3 : 25 Март, 2010, 17:50:57 »

Попробовал сконвертировать из одной кодировки в другую с помощью iconv.lib:

"Вылетает" на функции iconv().

что я делаю не так?

P.S. пустые ntohs() и  ntohl() пришлось дописать, чтобы программа собралась без библиотек TCP/IP, зачем они в iconv?


Цитировать
#include <iconv.h>
#include <stdlib.h>
#include <stdio.h>

main()
{
   iconv_t cd;
   
   char in[]="absdefgh ABCDEFGH";
   char *inptr=in;
   char out[100];
   char *outptr=out;
   size_t insize, outsize;

   cd=iconv_open("cp855", "cp1251" );

   insize=   sizeof(in);
   outsize=100;
   iconv(cd, &inptr, &insize, &outptr, &outsize );
   
   iconv_close(cd);
   

}


void ntohs()
{

}

void ntohl()
{

}
Записан
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #4 : 25 Март, 2010, 22:00:55 »

что я делаю не так?

Чтобы программа не падала, Вам нужно описать функции корректно: ntohs возвращает unsigned short, ntohl возвращает unsigned long.

Чтобы программа работала корректно необходимо реализовать в функциях переворачивание слова и двойного слова.

P.S. пустые ntohs() и  ntohl() пришлось дописать, чтобы программа собралась без библиотек TCP/IP, зачем они в iconv?

Исходный код доступен, можете посмотреть на него, чтобы разобраться в этом вопросе. Код доступен под лицензией BSD, а значит Вы можете делать с ними, что угодно.
« Последнее редактирование: 25 Март, 2010, 22:04:48 от Олег Большаков » Записан
LH
Ветеран

Сообщений: 345


« Ответ #5 : 26 Март, 2010, 15:48:30 »

Спасибо!
Записан
Ганевич Андрей
Интересующийся

Сообщений: 6


« Ответ #6 : 12 Январь, 2023, 17:25:27 »

К сожалению, ссылка, предлагающая скачать скомпилированую программу ,не работает. Если есть такая возможность, пожалуйста испрвьте.
Спасибо.
Записан
Андрей Докучаев
Модератор
Легенда

Сообщений: 1076



WWW
« Ответ #7 : 15 Январь, 2023, 17:33:24 »

Андрей, добрый день! Ваше сообщение видели, но быстро решить вопрос не получилось. С тех пор хостинг пережил несколько полномасштабных переездов и реорганизаций. К сожалению, сейчас очередная итерация. В том числе и сайт полностью переделывается. Некоторое время нам еще потребуется, извините.
Записан

r1k
Пользователь

Сообщений: 13


« Ответ #8 : 16 Январь, 2023, 14:25:50 »

Из запасников
Записан
Ганевич Андрей
Интересующийся

Сообщений: 6


« Ответ #9 : 16 Январь, 2023, 18:36:58 »

Из запасников
Спасибо!
Записан
Андрей Докучаев
Модератор
Легенда

Сообщений: 1076



WWW
« Ответ #10 : 18 Январь, 2023, 13:42:04 »

Ссылки переехали на новый движок и должны работать, приносим извинения за неудобства.
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2024 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 29 Март, 2024, 01:55:31