roboforum.ru

Технический форум по робототехнике.

Python и Web

Re: Python и Web

Romikgy » 03 авг 2010, 14:24


Re: Python и Web

MiBBiM » 03 авг 2010, 17:34

что-то я запутался, вот ситуация:
был текст в cp1251, его приложение прочитало как latin1 и сохранило в utf-8 (насчет последнего шага не уверен).
нужно эту солянку перевести обратно в cp1251 и закодировать в обычный юникод.
вот пример (слово 'Ария'):
Àðèÿ

опытным путем выяснить комбинацию encode, decode как-то не получается :(

Re: Python и Web

Vooon » 03 авг 2010, 19:28

EasyTag

Добавлено спустя 1 минуту 18 секунд:
А вообще выпилил приложение из robobb http://vehq.ru/blog/2010/08/03/django-e ... tachments/
может кому пригодится.

Re: Python и Web

MiBBiM » 03 авг 2010, 20:25

repr выводит страшное (слово то же, 'Ария'):
[u'[u"[u\'\\\\xc0\\\\xf0\\\\xe8\\\\xff\']"]']

утилиты юзать не получится, т.к. источник - веб-ресурс.

Re: Python и Web

Romikgy » 03 авг 2010, 21:18

MiBBiM писал(а):что-то я запутался, вот ситуация:
был текст в cp1251, его приложение прочитало как latin1 и сохранило в utf-8 (насчет последнего шага не уверен).
нужно эту солянку перевести обратно в cp1251 и закодировать в обычный юникод.
вот пример (слово 'Ария'):
Àðèÿ

опытным путем выяснить комбинацию encode, decode как-то не получается :(

а можно файл с таким текстом прицепить здесь , больно хочется на сие чудо перекодировки поглядеть ...

Re: Python и Web

MiBBiM » 03 авг 2010, 21:35

это тэги, так что большие файлы не получится. попробую чуть позже предоставить несколько фраз.
собственно, если сделать в интерпретаторе так:
Код: Выделить всёРазвернуть
>>> s = "Àðèÿ"
>>> print s
Àðèÿ
>>> print s.decode('utf8').encode('latin1').decode('cp1251')
Ария

то вроде как работает, но в приложении - нет.

Re: Python и Web

Vooon » 03 авг 2010, 23:01

Что за приложение такое секретное?
Прилепи хоть этот модуль (получение с ресурса и работа с тегом) попробую помочь.

Re: Python и Web

setar » 03 авг 2010, 23:59

не знаю, может не в тему - просто слова знакомые увидел
в линуксе есть пакет который кодировку сам исходную выясняет
app-i18n/enca
ENCA detects the character coding of a file and converts it if desired

Re: Python и Web

MiBBiM » 04 авг 2010, 20:13

setar писал(а):ENCA detects the character coding of a file and converts it if desired

к сожалению, не получится, т.к. данные идут потоком и это не текстовый файл.
Vooon писал(а):Что за приложение такое секретное?

ну, оно просто большое, это плеер exaile, а я пишу к нему плагин.
http://github.com/mibbim/exaile_prostopleer

Добавлено спустя 22 минуты 16 секунд:
проблема перекодировки решается в файле __init__.py, процедуре on_tags_parsed (сейчас в репозитории в тексте процедуры костыль). в коде происходит получение двух значений - artist и title, которые и нужно привести к читаемому виду. вот код, которым я пользовался во время тестов:
Код: Выделить всёРазвернуть
    def on_tags_parsed(self, type, player, args):
        track = player.current
        if track.get_tag_raw('__loc').startswith('http://prostopleer.com/'):
            title = track.get_tag_raw('title')
            artist = track.get_tag_raw('artist')
            # здесь перекодировка
            track.set_tag_raw('title', title)
            track.set_tag_raw('artist', artist)

Re: Python и Web

MiBBiM » 06 авг 2010, 14:42

победил-таки, оказывается это не строка была, а что-то необъяснимое =) с этими динамическими типами бида сплошная :)

Re: Python и Web

Vooon » 06 авг 2010, 23:55

Делай unit tests :)


Rambler\'s Top100 Mail.ru counter