Есть Debian 8 с radiotray и вот такие 1 , 2 радиостанции, с которых названия треков на кириллице идут крякозябрами. Гуглится один способ лечения:
1. При наведении мышкой на иконку RadioTray в системном лотке появляется маленькое сообщение с текущей песней. Чтобы там не было кракозябр - открываем файл /usr/lib/python2.7/site-packages/radiotray/StateMediator.py Последние 5 строк файла меняем. Было:
def on_song_changed(self, data):
print data
if('artist' in data.keys()):
self.context.artist = data['artist']
if('title' in data.keys()):
self.context.title = data['title']
Стало:
def on_song_changed(self, data):
print data
if('artist' in data.keys()):
self.context.artist = data['artist'].encode('latin-1').decode('cp1251').encode('utf8')
if('title' in data.keys()):
self.context.title = data['title'].encode('latin-1').decode('cp1251').encode('utf8')
2. Дальше плагин, который показывает название песни в правом-верхнем углу. Плагин называется Notification. Открываем файл /usr/share/radiotray/plugins/NotificationPlugin.py. Предпоследнюю строку, которая выглядела:
self.notif.update(title, message)
Меняем на:
self.notif.update(title.encode('latin-1').decode('cp1251').encode('utf8'), message.encode('latin-1').decode('cp1251').encode('utf8'))
3. Плагин истории прослушанных песен. Открываем файл /usr/share/radiotray/plugins/HistoryPlugin.py. Находим строку:
title = data['title']
И прямо под ней добавляем новую строку. Должно получиться так:
title = data['title']
title=title.encode('latin-1').decode('cp1251').encode('utf8')
Все это я сделал, подставлял названия других кодировок, но либо совсем перестает кириллические писать либо крякозябрами разных видов.
Вопрос к знатокам, ЧЯДНТ или как сделать нормально?
P.S. Выкинуть radiotray на мороз не предлагать, привык к нему.