Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: iconv не получается конвертировать строку  (Прочитано 1419 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн avi9526

  • Автор темы
  • Активист
  • *
  • Сообщений: 618
  • ахтыжъёшкинкот
    • Просмотр профиля
    • Блог av9526
Есть строка
þÉÓÌÏ ÒÁÂÏÞÉÈ ÐÒÏÃÅÓÓÏ×, ÒÅËÏÍÅÎÄÕÅÔÓÑ ÓÔÁ×ÉÔØ ÐÏ ËÏÌÉÞÅÓÔ×Õ ÑÄÅÒкоторую с помощью онлайн сервиса http://2cyr.com/decode/?lang=ru удалось конвертировать из KOI8-R в ISO8859-15 как
Число рабочих процессов, рекомендуется ставить по количеству ядер
Но когда тоже самое делаю с консоли:
echo "þÉÓÌÏ ÒÁÂÏÞÉÈ ÐÒÏÃÅÓÓÏ×, ÒÅËÏÍÅÎÄÕÅÔÓÑ ÓÔÁ×ÉÔØ ÐÏ ËÏÌÉÞÅÓÔ×Õ ÑÄÅÒ" | iconv -c -f KOI8-R -t ISO8859-15 � ,    �
Что я делаю не так?
Ubuntu 14.10

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Попробуйте так
echo "þÉÓÌÏ ÒÁÂÏÞÉÈ ÐÒÏÃÅÓÓÏ×, ÒÅËÏÍÅÎÄÕÅÔÓÑ ÓÔÁ×ÉÔØ ÐÏ ËÏÌÉÞÅÓÔ×Õ ÑÄÅÒ" | iconv -c -f KOI8-R -t UTF8

Оффлайн avi9526

  • Автор темы
  • Активист
  • *
  • Сообщений: 618
  • ахтыжъёшкинкот
    • Просмотр профиля
    • Блог av9526
Получается так
ц╬ц┴ц⌠ц▄ц▐ ц▓ц│ц┌ц▐ц·ц┴ц┬ ц░ц▓ц▐ц┐ц┘ц⌠ц⌠ц▐ц≈, ц▓ц┘ц▀ц▐ц█ц┘ц▌ц└ц∙ц┘ц■ц⌠ц▒ ц⌠ц■ц│ц≈ц┴ц■ц≤ ц░ц▐ ц▀ц▐ц▄ц┴ц·ц┘ц⌠ц■ц≈ц∙ ц▒ц└ц┘ц▓у тебя сработало?
Ubuntu 14.10

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5754
  • Все по палатам!
    • Просмотр профиля
когда тоже самое делаю с консоли:
echo "þÉÓÌÏ ÒÁÂÏÞÉÈ ÐÒÏÃÅÓÓÏ×, ÒÅËÏÍÅÎÄÕÅÔÓÑ ÓÔÁ×ÉÔØ ÐÏ ËÏÌÉÞÅÓÔ×Õ ÑÄÅÒ" | iconv -c -f KOI8-R -t ISO8859-15 � ,    � Что я делаю не так?
Сделай так
echo "þÉÓÌÏ ÒÁÂÏÞÉÈ ÐÒÏÃÅÓÓÏ×, ÒÅËÏÍÅÎÄÕÅÔÓÑ ÓÔÁ×ÉÔØ ÐÏ ËÏÌÉÞÅÓÔ×Õ ÑÄÅÒ" > a.txt
И попробуй прочитать a.txt в hex-редакторе, согласно кодовой таблице
ASCII
https://ru.wikipedia.org/wiki/ASCII
и KOI8-R
https://ru.wikipedia.org/wiki/%D0%9A%D0%9E%D0%98-8
Далее - подумай...
Извините, я все еще учусь

Оффлайн avi9526

  • Автор темы
  • Активист
  • *
  • Сообщений: 618
  • ахтыжъёшкинкот
    • Просмотр профиля
    • Блог av9526
ок, я вижу что код каждого кириллического символа в KOI8-R увеличен на 0xC2C0, например
"Ч" → 0xFE + 0xC2C0 = 0xC3BE
… но как заставить iconv это скушать я не знаю

Можно ещё подсказку?
Ubuntu 14.10

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5754
  • Все по палатам!
    • Просмотр профиля
avi9526,
iconv такое и не скушает - нет такой кодировки. Ответьте на вопрос - в какой кодировке у вас консоль (обычно utf8), как вы можете в консоли в строке писать в кодировке не консоли (то есть вставить строку в кодировке koi8-r)?
Извините, я все еще учусь

Оффлайн avi9526

  • Автор темы
  • Активист
  • *
  • Сообщений: 618
  • ахтыжъёшкинкот
    • Просмотр профиля
    • Блог av9526
Ответьте на вопрос - в какой кодировке у вас консоль (обычно utf8) …?
echo $LANG
en_US.UTF-8

… как вы можете в консоли в строке писать в кодировке не консоли (то есть вставить строку в кодировке koi8-r)?
Подозреваю что не могу. Файл из которого я взял эту строчку уже имеет такую проблему, в нём строчка уже сохранена как после echo "þÉÓÌÏ ÒÁÂÏÞÉÈ ÐÒÏÃÅÓÓÏ×, ÒÅËÏÍÅÎÄÕÅÔÓÑ ÓÔÁ×ÉÔØ ÐÏ ËÏÌÉÞÅÓÔ×Õ ÑÄÅÒ" > a.txt
Я без понятия как такое вообще получилось… И мне интересно как сайт смог такое переварить
Ubuntu 14.10

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5754
  • Все по палатам!
    • Просмотр профиля
Подозреваю что не могу. Файл из которого я взял эту строчку уже имеет такую проблему, в нём строчка уже сохранена как после echo "þÉÓÌÏ ÒÁÂÏÞÉÈ ÐÒÏÃÅÓÓÏ×, ÒÅËÏÍÅÎÄÕÅÔÓÑ ÓÔÁ×ÉÔØ ÐÏ ËÏÌÉÞÅÓÔ×Õ ÑÄÅÒ" > a.txt
Я без понятия как такое вообще получилось… И мне интересно как сайт смог такое переварить
То есть строка не в кодировке koi8-r, а уже преобразованная.. значит на сайте не просто перекодировщик, а программа по типу Штирлица
(https://ru.wikipedia.org/wiki/%D0%A8%D1%82%D0%B8%D1%80%D0%BB%D0%B8%D1%86_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%29)
Извините, я все еще учусь

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Получается так
ц╬ц┴ц⌠ц▄ц▐ ц▓ц│ц┌ц▐ц·ц┴ц┬ ц░ц▓ц▐ц┐ц┘ц⌠ц⌠ц▐ц≈, ц▓ц┘ц▀ц▐ц█ц┘ц▌ц└ц∙ц┘ц■ц⌠ц▒ ц⌠ц■ц│ц≈ц┴ц■ц≤ ц░ц▐ ц▀ц▐ц▄ц┴ц·ц┘ц⌠ц■ц≈ц∙ ц▒ц└ц┘ц▓у тебя сработало?
Аналогичный результат.
Как интересно.
Кстати, на сайте также получается. Очень хитрый сайт.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5754
  • Все по палатам!
    • Просмотр профиля
avi9526, признавайся, что за файл, откуда взял... выложи, посмотрим
Извините, я все еще учусь

Оффлайн avi9526

  • Автор темы
  • Активист
  • *
  • Сообщений: 618
  • ахтыжъёшкинкот
    • Просмотр профиля
    • Блог av9526
Файл - конфиг nginx с FreeBSD сервера, выложить его я не могу, по понятным причинам, эта сточка комментарий в нём

Обрезал всё секретное в файле командой dd if=./nginx.conf of=./dump bs=512 count=1 первые 512 байт совпадают с оригиналом, приложил к сообщению
Ubuntu 14.10

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5754
  • Все по палатам!
    • Просмотр профиля
avi9526, кто-то скопипастил или отредактировал похоже этот файл с оригинала и кодировка кои8 преобразовалась неправильно. Либо руками перебить, либо прогу написать для перекодировки
Извините, я все еще учусь

 

Страница сгенерирована за 0.019 секунд. Запросов: 22.