войти зарегистрироваться

Убунтариум whois

индекс
170,92

Кое-что о проблемах с кодировками в убунту.

Я не ставил себе цель решить все проблемы, но хотел написать решения, о которых не писалось на хабре.
В основном коснусь кодировок в icq.

Итак начнем с IM. Хорошая хозяйка может взять на заметку несколько следующих фактов. Миранда прекрасно ладит как с utf так и с 1251. qip принимает только 1251 и не желает работать с utf. Pidgin настроеный на utf не принимает 1251. Pidgin настроенный на 1251 принимает utf но отсылает в ответ все равно 1251.
Резюмирую предыдущий параграф, могу сказать что пока корректнее всего работает с кодировками миранда, но ее надо запускать таким образом: env LC_ALL=ru_RU.cp1251 wine miranda.exe иначе она не будет работать с cp1251.
UPD
Прошу собого внимания тех, кто пользуется пиджином
Pidgin получает сообщения из офлайна кракозябрами.
Пользователь Zeboton подсказал, что в свойствах Pidgin надо писать не cp1251 а WINDOWS-1251 тогда проблема исчезает.
Я сам проверял, действительно так.
/UPD
Вообще метод запуска LC_ALL=ru_RU.cp1251 wine программа.exe может применяться ко всем виндовым программам с проблемными кодировками, но я думаю что этим я америку не открыл.

У вас было такое, что вы вставляете нормальный диск а кириллические названия выглядят примерно так: "?????".
Проблема, как ни странно, в том (по крайней мере с моими дисками), что он НЕ примонтировался В СИСТЕМНОЙ КОДИРОВКЕ UTF8!
Если вам попался такой диск попробуйте примонтировать с опцией -o iocharset=utf8. Если буквы проявили свою кириллическую сущность, то можете прописать в fstab опцию iocharset=utf8 к сиди-рому.

И немного про субтитры в mplayer.
С начала находим шрифт с поддержкой кириллицы, хотя бы ту же тахому. Кладем в home/юзер/.mplayer. Находим там же файл config.
Пишем в него:
font=/home/юзер/.mplayer/tahoma.ttf
subcp="utf8"
Если сабы у вас с 1251 последнюю строчку следует заменить на
subcp = "cp1251"
UPD
Пользователь non7top подсказал, что для автоопределения кодировки в mplayer вместо subcp = "cp1251" надо написать:
subcp = enca:ru:cp1251
при этом должна быть установлена enca.

Тут немного о кодироваках в аудиофойлах и проигрывателях.

Собственно пока все. Если вы считаете что какую-либо проблему надо решать по-другому либо знаете как решить другую - пишите. Поправки тоже принимаются.

комментарии (61)

  • У меня в Пиджине все нормально с кодирвкой, в свойствах аккаунта поставил cp1251 и работает как надо. Единственное напрягает, что, когда пишут с Квипа, то не показывается статус "печатает" у собеседника.
    • Рад за вас. Возможно проблема с получением сообщений которые были отправлены, пока пользователь был не в сети касается не всех. Напишите кто-нибудь если у вас есть такая проблема.
      • Небольшая поправка. Если кто не понял о чем я писал. Когда вы говорите с пользователем пиджин работает нормально. Проблема заключается в том, что когда вы запускаете пиджин и к вам приходят сообщения, отправленные раннее, пока вас не было, они могут не отображаться корректно.
        • Установка в настройках учетной записи кодировки "cp1251" для меня полностью решает все проблемы, которые Вы описали.
          • У меня тоже стоит cp1251 в настройках. Из оффлайна сообщения приходят кракозябрами. Только сегодня получил, по этому решил и написать. Просто я думаю, что если проблемы есть у меня, то они могут быть у кого-нибудь еще. Но не обязательно у всех.
            • аналогичная проблема.
              • Как я уже говорил и не знаю как ее решить, но как просмотреть сообщения пришедшее кракозябрами я написал выше в основном тексте статьи.
                • у меня было тоже самое, пока я не поставил в pidgin cp1251. Может, вы не в тех настройках?
                  • Изменить учетную запись->дополнительные->кодировка
                    А у вас нормально работают сообщения именно те, которые вам отсылали, пока вас не было в сети? остальные и у меня нормально отображаются.
                    • да, бага была такая же и этим вылечилась. И настройки вроде правильные (у меня, правда, локаль en_DK.UTF8)
        • Я перепробовал все кодировки. ISO-8859-1 CP1251,
          Windows-1251 cp-1251 cp1251 CP-1251 WINDOWS-1251 Windows1251 UTF все
          вариации перепробовал. не помогает.
          (разный регистр букв оказывается имеет разное значение). не
          мракобесие? потом в сети вычитал, что мол через запятую кодировки
          можно понаписать в настройках программы и мол будет тебе счастье. ага.
          как же. конечно... тоже не помогло.
          блин, оказывается там, в настройках программы-клиента, ещё и шрифт
          стоял не поддерживающий русские буквы. ладно это решил. ага, потом
          выяснилось что сервера обрабатывающие асечный трафик,
          login.messaging.aol.com , login.oscar.aol.com , login.icq.com могут
          зачастую по разному обрабатывать кириллицу и не всегда одинаково.
          перепробовал все - фиг. А только что в сети прочёл, что ещё и порт,
          через который протокол icq, может тоже по странному кириллицу
          обрабатывать. пробовал разные, без должного результата. хотя изменения
          есть. Потом гляжу, а тут оказывается, файрвол рубит некоторый
          исходящий трафик по протоколам UDP и TCP. Ага думаю, попался, вот в
          чём загвоздка! Вырубил нафик файрвол и...- тоже ноль эмоций. Всё по
          прежнему. К этому времени, я уже час сижу за этой проблемой.

          От некоторых, кто пишет мне, приходит это:
          (Произошла ошибка при приёме этого сообщения. Либо у вас и 10558844
          выбраны разные кодировки, либо клиент 10558844 содержит ошибки.) , от
          некоторых людей, приходит набор символов - не буквы, так, квадратики
          какие то и картинки, а вот от Лёхи моего, в место руских букв в
          перемешку английские.
          И главное всем пишу раз по 5: НЕ ПИШИ КИРИЛЛИЦЕЙ - фиг, все даже и не
          думают писать латинскими буквами. Шлют мне по 100 сообщений на
          русском, а мне не приходит ни одного символа который можно понять. все
          в кашу перемешено. я слова одного понять не могу, но народ упорно шлёт
          кирилицей. Проходит ещё час... проблема не решена. Ну и на последок.
          Оказывается, это только с icq у меня. В xmmp, gtalk, jabber, irc -
          нет таких проблем. И кстати, вырубаю программу(Pidgin), врубаю
          старый, добрый qip ввожу туда, эти же самые логин/пароль. а кип мне,
          мол пароль не верный. отакот :-(. я уже наверно раз 20 туда ввёл
          данные правильные, кипу начхать, вот не верные и все. я уже логин и
          пароль пытался просто копировать и туда и туда, в кипе он не рабочий.
          и главное другой аккаунт в кипе(не мой) намана работает

          Естественно и пере-устанавливал и свежий дистриб скачивал - как
          мёртвому припарка. Так ещё бесит то, что и от меня кириллица через раз
          проходит. раз напишу - намана, другой раз напишу - человеку
          каша-малаша из закорючек приходит. я конечно мог бы скачать другой
          клиент, но ведь принцип! всегда работало! Оказывается не все видят
          мои послания даже если пишу латиницей. Вот так вот. И все это только в
          аське. Короче, считай, в аське я ток для красоты ) .

          И, где то к концу третьего часа тщетных попыток разобраться с
          клиентом, я нахожу загвоздку - софтину ставил поверх старого history,
          (история сообщений). Я её всегда храню. Полезная вещь. Но только не
          тогда, когда ты её с linux-а перетащил в винду с кодировкой файлов
          UTF-8. Удалил хистори, перезапустил клиента - все! Да здравствуют
          национальные символы алфавита моей многострадальной родины! и не тут
          то было, все же не у всех... вот так. Кто в программах аськах сидит
          или кипах - намана. а вот кто с миранды какой пошлёт или с линухового
          клиента - опять белиберда.

          Движимся к четвертому часу и все больше разгадок. Эксперементальным
          путем, установив на машину миранду, кип и мой pidgin, я вычислил, что
          только с кипа и вероятно аськи, мне латиницей можно писать. А вот с
          миранды даже англиццкого нет
          Т.е. когда я вижу это
          x4;x4;x4;x4;? x4;x4;x4;x4;8 x4;x4;x4;x4;= x4;x4;x4;x4;3 я понимаю что
          человек пишет по русски. А это: (Произошла ошибка при приёме этого
          сообщения. Либо у вас и 325868434 выбраны разные кодировки, либо
          клиент 325868434 содержит ошибки.) - ты что то пишешь по английски
          используя либо линух в качестве ОС, либо миранду в качестве клиента.

          Вот.
      • у меня в федоре та же фигня! незнаю как kopete, но в пидгине наблюдал такую проблему
        • В Копете всё нормально с этим, судя по моему опыту (пользуюсь им уже больше года). Сообщения приходят кракозябрами только в том случае, если у вас в профиле стоит кодировка cp1251, а ваш собеседник по каким-то причинам пользуется другой кодировкой - это лечится тем, что персонально для этого контакта выставляется соответствующая кодировка (делается это штатными средствами Копете, в конфиги лезть не надо).
          В целом, могу сказать (только не надо это воспринимать как наезд на другие IM-клиенты или разжигание холивора), что Копете на данный момент самый адекватный ICQ-клиент под Линукс (про другие протоколы не говорю, потому что пользуюсь только джаббером и аськой, а в плане джаббера Psi и Tkabber затыкают за пояс всех прочих).
          • еслиб только копыто еще прокси понимал...
          • Только что специально зашел в пиджине с одного юина (А) настроенного на 1251 послал сообщение другому (Б) в офлайне. Зашел с друго (Б) пришли кракозябры. Попробуйте сами, надо отлько иметь 2 юина.
            • Еще раз уточню, на оба юина заходил с пиджина, оба настроены на cp1251.
    • в последней версии pidgin 2.4.0 наблюдаются проблемы в icq с cp1251. Самое интересное что с тем же pidgin 2.4.0 в linux проблем нет.
      И проблема вышеописанная только в icq. Оффлайновые сообщения приходят нормально, а сам онлайн приходит с крякозябрами. При этом в настройках аккаунта стоит cp1251, но по ходу пингвин на них кладет :(
  • >>-o iocharset=utf8

    куда именно примонтировать?? у меня две проги (словари) на русском и обе открываются крякозябрами. ваш совет очень пригодился бы.
    П.С. пользуюсь XPpro, все остальные проги на англ.
    • Откройте /ets/fstab ,конечно с правами суперпользователя и найдите строчку отвечающую за cd-rom, у меня выглядит так
      /dev/hdc /media/cdrom0 udf,iso9660 user,noauto,exec 0 0
      подпишите в ней, чтобы она была iocharset=utf8 такой
      /dev/hdc /media/cdrom0 udf,iso9660 user,noauto,exec,iocharset=utf8 0 0
      потом вставьте диск.
      А монтировать можно слудующим образом:
      сначала отмонтируйте вставленный диск:
      umount /dev/cdrom
      потом монтируйте с нужной кодировкой, например utf8
      sudo mount -o iocharset=utf8 /dev/cdrom /mnt/cdrom
      только у вас должна существовать папка /mnt/cdrom
      • Забыл написать что надо или монтировать или прописывать в fstab. Также попробуйте кодировку cp1251, но у меня были проблемы именно с utf8.
  • ->
    • Пожалуйста поясните мысль. Я специально не рассматривал проблем, которые решались в этих статьях, если вы об этом. На сколько я помню, там не была описана проблема пиджина, когда в pidgin cp1251 уже поставили. Там не рассматривалась проблема с неправильной кодировкой на cd-rom'е и про субтиты в mplayer там тоже не говорилось. Пожалуйста поправьте, если я ошибаюсь.
    • Перенес в убунтариум, на сколько я понимаю, мой предыдущий коментарий был ошибочной интерпретацией. Спасибо за совет.
  • я не нашел слова 'licq'. Почему? Ведь в ней нет совершенно никаких проблем с кодировками. Наоборот — каждому окну можно выставить свою.
    • Спасибо за информацию, честно говоря я его не пробовал.
  • А я сторонник гламурненткого Kopete, который, кстати говоря, отлично понимает кирилицу, включая оффлайновые сообщение - достаточно выставить в настройках аккаунта "Кодировку по умолчанию" Windows-1251 Cyrillic.
    • А это правда,что он не авторизованых пользователей удаляет? Или мне лапши на ужи понавешали?
      • он удаляет не добавленных в контакт лист (но это настраивается) после перезпгрузки. Другой вопрос, что все, кто вас не авторизовал, отображаются всегда как бы в оффлайне. это несколько расстраивает.

        Дождаться бы стабильного кде4 - там в копете и файлы будут передаваться и x-status'ы...
        • > ругой вопрос, что все, кто вас не авторизовал, отображаются всегда как бы в оффлайне. это несколько расстраивает.
          ну это аська на сервере делает (и, кстати, это правильно с точки зрения безопасности - вот только что обсуждали делать ли так в нашем IM :) )
  • Использование однобайтных кодировок в наши дни (1251 и т.п.) сродни намеренному выставлению 256 цветов в видеокарте, способной на 65 тысяч.
    • Ага, почаще вспоминайте эти ваши слова, пользуясь IRC-серверами, зачастую не поддерживающими UTF. :D

      Относительно же статьи хотелось бы добавить, что основная проблема Ubuntu с кодировками с которой столкнулся я - это то, что при локали ru_RU.UTF-8 у меня irssi, правильно и грамотно рекодящая приходящее/уходящее (в плане текста) в 1251, упорно показывает русские ники квадратиками. Решения проблемы не знаю, привык уже... :)
      • Вношу справку. Обычные IRC-сервера глубоко фригидны до кодировок, они передают данных поток от клиента к клиенту в неизменном виде. Интрепретация и генерация этого потока полностью ложится на железные клиентов, поэтому выражение "этот сервер поддерживает кодировку X" на самом деле означает, что большинство пользователей договорились использовать кодировку X для знаконабора Y, например CP-1251 для кириллицы.

        Вполне бывают случаи, когда на одних каналах одна кодировка, а на других другая, например на общем чате 1251, а на канале #linux очень даже utf-8. Правда, для этого нужны клиенты, поддерживающие поканальную кодировку, а не посерверную. Их не очень много, но они есть.
        • С удовольствием дополняю справку. Ubuntu вообще фригидна до кодировок, это уже чисто человеческие изыски, связанные с тем, что видите ли, кракозябры на экране читать им, видите ли, неудобно.

          Относительно же персональных настроек кодировки для канала - я, собственно, irssi в виду имел, оно такого не умеет.
          • Убунту (иксы, консоль) занимается визуализацией, то есть трансляцией цифровых кодов в глифы, а ИРЦ-сервер нет. Поэтому ему всё же дело есть.
        • Вношу поправку к cправке. Есть сервера которые реально перекодируют текст. Например ircd-RU! (http://www.ircd.ru).
          • Вношу дополнение к поправке в справке: ох и сырой же ircd-RU. :D
  • для mplayer правильнее указать в конфиге subcp = enca:ru:cp1251, а не то что подсказал автор. тогда кодировки будут определяться автоматом
    • Только вот беда - все плюсы ass(ssa) субтитров улетучиваются. Да надо еще ставить программу enca.
      Так что пока приходиться пока перекодировать все субы в utf8 через enca, а потом уже смотреть. Но так удобнее их редактировать.
      • Эта опция никак не влияет на способ отображиение субтитров, он лишь автоматически определяет нужную кодировку.
        Далее по тексту непонятно "надо еще ставить программу enca. Так что пока приходиться пока перекодировать все субы в utf8 через enca", если она уже установлена, то зачем ее ставить еще раз? :)

        ЗЫ сам всегда перекодирую субтитры простенькой командой enconv *ass (или *srt), т.к. действительно потом с ними проще обращаться, да и aegisub нормально открывает только сабы в utf8
    • Про enca не знал, а где ее можно еще использовать? (допишу ваш комент в топик)
  • Использую Pidgin 2.2.1 в Ubuntu 7.10. В настройках учётной записи ICQ стоит кодировка не CP1251, а windows-1251. Я понимаю, что это не совсем правильно, но это работает! Все сообщения (и он-лайн, и офф-лайн) приходят на русском.
    • Проверю, помню gedit при настройке определения через gconf-editor понимал тоже только windows-1251 я не уверен, что это не правильно.
      • Гм, у меня приходит нечто странное похожее на хтмлные названия букв, но при сохранении их в файл с расширением хтмл и открытие через браузер, открывается что-то странное, надо еще поэкспериментировать.
        • Работает! Пишу в топик.
  • квип умеет утф *вспоминаю, как ставил его в настройках года два назад*
    я, честно говоря, поражаюсь людям, которые запускают виндовую миранду под вайном с одновременной установкой локали, вместо того, чтобы заюзать копете/сим/licq, etc. не в обиду. пиджин еще не "наше все" :)
    • Я пробовал, когда в настройках стоит кириллица, он не принимает юникод, правда это была не последняя версия. Понимаете, когда в пиджине стоит кириллица, он принимает юникодовые сообщения, и миранда тоже принимает и кириллицу и юникод. А кип на сколько я понимаю либо то либо другое.
      • а SIM наш любимый позволяет (в отличие от... :) ) ставить для каждого контакта свою кодировку - хоть ISO-8859-5, хоть KOI8-R :) попробуйте - вдруг понравится?
        • ага, тоже SIM - проблем с кодировкой нет никаких. только последняя версия менее стабильная почему-то :(
          • svn build? не замечал за ним никаких проблем вроде - пересборка последняя была месяца два назад.
            • о, нужно попробовать svn build. нет, я говорил о 0.9.4.3
  • Добавлю, музыкальный проигрыватель Rhythmbox может выводить кракозябрами тэги в музыкальных композициях, если у них не указана кодировка (при этом она как правило windows-1251). Для исправления кодировки тэгов можно воспользоваться программой EasyTAG, в которой установить входную кодировку windows-1251, а выходную (достаточно только ID3v2) - UTF-8, и сохранить всю музыкальную коллекцию. После этого проблем с неправильной кодировкой тэгов уже не будет.
    • продолжая тему конвертации тегов.
      как быстро переконвертировать теги mp3-файлов в консоли из cp1251 в utf8:

      find . -name "*.mp3" -print0 | xargs -0 mid3iconv -e CP1251 -d > /home/traut/_temp/convert.log
    • Если перекодить теги в utf-8... Тогда наступает алес для них в windows. Ни XP, ни WinMobile у меня ни разу ни угадали что там в utf-8 понаписано. Это как лечится?
      • Вообще по идее если писать ютф в id3v2 а 1251 в v1 (хоть 1251 туда нельзя по стандарту) то должно нормально работать, но на практике все оказывается гораздо сложнее.
        • каюсь, качнул mp3 с eDonkey. Но что удивительно- ID3v2 теги в Mp3 были правильные, UTF! сграблено было с помощью iTunes.
          Так что когда пишите, что XP не поддерживает теги в utf, обращайте внимание на то, какими программами вы пользуетесь.
    • Я пользуюсь Audacious. Последняя версия (не помню как с остальными) может отображать теги cp1251, для этого достаточно выбрать соответствующую опцию в настройках. Именно из-за этого перешёл на этот плеер не смотря на его глючность.
  • Убунтовская deb'ка pidgin'а таки имеет проблемы виндовой кодировкой. А вот собранный из сырцов работает прекрасно. Где-то они там чего-то не дособирали.
  • Установка WINDOWS-1251 не решает проблемы с названиями русскоязычных групп.
  • Установил у себя на сервере Jabber-сервер и ICQ-транспорт (к сожалению не все еще отказались от ICQ). В качестве клиента использую Gajim из репозитория - очень доволен.
  • audacious - музыкальный проигрыватель, клон WinAmp'а.

    Ctrl+p, "Список воспроизведения", Автоматическое определение кодировки для - из выпадающего списка выбрать Russian.

    И нормальные юникодные теги, и ненормальные cp1251 после этого будут показываться корректно :-)

    PS. по умолчанию он идет со скучным белым скином, так что бросьте ваш любимый winamp/xmms/bmp скин в .audacious/Skins
Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.