nixp.ru v3.0

22 октября 2017,
воскресенье,
11:21:48 MSK

DevOps с компанией «Флант»
Аватар пользователя Steck
Steck написал 19 октября 2005 года в 07:25 (439 просмотров) Ведет себя как мужчина; открыл 124 темы в форуме, оставил 549 комментариев на сайте.

Народ подскажите как перекодировать

К примеру слово «Привет» в Unicode?

Вроде надо из байта вычесть C0H и прибавить 410H

Ммм помогите с примерчиком?

rgo

во-первых, что значит cyrillic: koi8-r, cp1251, cp866?

а во-вторых, что значит unicode: utf8, utf16, utf32? le или be?

судя по всему не utf8… но их же ещё два остаётся.

но в общем если cp1251->utf16le, то ты почти прав. Буковки 'ё' и 'Ё' кодируются значениями 0×451 и 0×401 соответственно.

но «почти прав» это если (что наиболее вероятно), у тебя ix86…

а проблемы могут быть от того, что тебе на самом деле нужен utf16be… байтики местами обменяй, в каждом 16-bit слове.

Steck

мне надо koi8-r и если быть точным UCS2. вот

Чтобы передавать SMS сообщения на русском ;o)

Прогу пишу.

И заметил только сейчас что….Хех

Интерфейс на gtk2. Только сейчес написал слово «Привет» выделил его и

вставил в коноль результат….

«\u041f\u0440\u0438\u0432\u0435\u0442»

Можно сказать проблема решена?

rgo

я пользовался такой конструкцией:

echo «Привет» | iconv -f koi8-r -t utf16 | hexdump -C

Steck

А как это можно реализовать в С?

Есть же проще способ чем юзать iconv.h

а потом смотреть сырцы hexdump…

rgo

а что iconv сложно использовать? Если не iconv, то тебе придётся вручную переупорядочивать последовательность букв. в koi8-r буквы упорядочены с хитрым умыслом: юабцдефгхи… А это значит либо огромный switch либо таблица.

ЗЫ. Кстати, мне кажется что gtk2 использует utf8 в качестве внутренней кодировки.

Steck
rgo
а что iconv сложно использовать? Если не iconv, то тебе придётся вручную переупорядочивать последовательность букв. в koi8-r буквы упорядочены с хитрым умыслом: юабцдефгхи… А это значит либо огромный switch либо таблица.

ЗЫ. Кстати, мне кажется что gtk2 использует utf8 в качестве внутренней кодировки.

Да gtk2 utf8 пользует. Попробую iconv если не выдет придется брать бубен и..)

Steck

Так с iconv подружился..а теперь надо получить то что выдает hexdump…

Вот это как сделать..? Кто подскажет.

rgo

слушай, а зачем тебе hexdump? Я до конца задачу не понимаю. Работать с utf8 строками надо? перебирать отдельные символы в них? Поройся в glib там были какие-то функции для этого.

Genie

что только народ не начнёт делать, лишь бы документацию не читать….

при установленных пакетах разработчика очень советуется почитать:

$ apropos utf8

ну, и для затравки,

$ man 7 utf8
rgo

:)))

Это я всё никак от дурных привычек приобретённых в виндовс и дос не могу избавиться. Там ведь чуть что, в руки hexview, дебуггер, дизассемблер и вперёд.

Steck

у меня с этими кодировками и 0410 0411 уже голова кругом.

надо просто превратить слово «Привет» в

041F 0440 0438 0432 0435 0442

и все и будет мне счастье)