URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9790
[ Назад ]

Исходное сообщение
"Перевод из одной кодировки в другую"

Отправлено buganchik , 04-Дек-13 18:17 
Ребят, подскажите, пожалуйста, принцип перекодировки iconv.
Мне нужно ручками(скриптом), без использования iconv, перекодировать русский текст из 1251 в КОИ-8R и UTF-8 и наоборот. Признаюсь, делаю лабу в универе, но в будущем очень пригодится знать, как говорится подноготную.
Заранее спасибо за помощь.

Содержание

Сообщения в этом обсуждении
"Перевод из одной кодировки в другую"
Отправлено skb7 , 04-Дек-13 20:59 
> Ребят, подскажите, пожалуйста, принцип перекодировки iconv.
> Мне нужно ручками(скриптом), без использования iconv, перекодировать русский текст из
> 1251 в КОИ-8R и UTF-8 и наоборот. Признаюсь, делаю лабу в
> универе, но в будущем очень пригодится знать, как говорится подноготную.
> Заранее спасибо за помощь.
> Ребят, подскажите, пожалуйста, принцип перекодировки iconv.
> Мне нужно ручками(скриптом), без использования iconv, перекодировать русский текст из
> 1251 в КОИ-8R и UTF-8 и наоборот. Признаюсь, делаю лабу в
> универе, но в будущем очень пригодится знать, как говорится подноготную.
> Заранее спасибо за помощь.

1. Скрипт на каком языке? Какие утилиты/библиотеки/фреймворки можно использовать?

2. Подноготную iconv узнать легко.

Так узнаем что iconv находится в пакете libc-bin:


$ apt-file search /usr/bin/iconv


Так получаем исходники:


$ apt-get source libc-bin


Дальше заходим в каталог с исходниками iconv:


$ cd eglibc-2.17/iconv


и начинаем копать. Там обычный код на Си. Но не думаю что в вашем задании это особо поможет.

3. То, что вам нужно сделать, разобраться с таблицами кодировок.
http://en.wikipedia.org/wiki/Windows-1251
http://en.wikipedia.org/wiki/KOI8-R
http://en.wikipedia.org/wiki/UTF-8

А затем написать код, приводящий код символа из одной таблицы в код символа из другой.
Например, если нужно перевести символ с кодом 0x11 из кодировки 1 в кодировку 2, и в кодировке 1 'nj код символа "X", а в кодировке 2 код сивола "X" это 0x22, значит надо вместо 0x11 поставить 0x22. Это принцип. Алгоритм придумайте сами, в этом наверное и есть суть задания. Таблицы я вам выше привел.


"Перевод из одной кодировки в другую"
Отправлено pavlinux , 09-Дек-13 18:17 
чтоб чё-нить куда-нить перевести, нужно знать чё и куда, остальное - оптимизация.

http://www.opennet.me/openforum/vsluhforumID9/9656.html