вторник, 12 апреля 2011 г.

Пишем в Skype используя не Latin-1 символы на 64-битной системе

Сегодня столкнулся с довольно таки забавной проблемой. Установил последнюю бету Skype для Linux под свой openSUSE 11.4 x86_64 и он мне кодировал все символы русской и украинской раскладки в крякозабры во всех полях ввода. Странно, подумал я и решил явно указать локаль в которой следует работать Skype, однако это ничего не дало. И после:

$ LOCALE=ru_RU.utf8 skype &

все не ASCII символы преобразовались во что-то человеко не читаемое. Окей, сказал я и полез в гугл. Оказалось все легко. После предыдущего запуска в консоле остались следующие диагностические сообщения от Skype:

QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv failed for BOM: Bad file descriptor
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv failed for BOM: Bad file descriptor

и именно по ним я вышел на решение моей проблемы. Оказалось, что надо всего-то доустановить glibc-locale-32bit из стандартного репозитория, перезапустить Skype и настанет счастье.

Остается только загадкой почему эту зависимость разработчики скайпа не добавили в RPM-пакет и почему упоминание про нее отсутствует на официальной странице по установке Skype в openSUSE.

Итак, не возможно напечатать не Latin-1 символы в полях ввода в Skype? В консоли выполняем:

$ sudo zypper in glibc-locale-32bit

И проблема решена!