Форум сайта python.su
0
Здравствуйте. Помогите решить проблему с кодировкой.
У меня скрипт стартует subprocess (ffmpeg).
Скрипт в параметрах передает текст. Я хочу послать параметр в utf-8, но ffmpeg пишет в итоге иероглифы.
Если кодирую в cp1251, то неизвестные символы заменяются вопросами.
Если стартовать в окружении cygwin то там все боле менее. Но cygwin совершенно случайным образом при попытке стартовать subprocess вываливается в ошибку с библиотекой time.dll.
В *nix все хорошо.
В виндах вообще возможно решить проблему кодировки?
Офлайн
31
Сам часто сталкиваюсь,но только подбором кодировки во второй версии питона можно
пробую по разному
.decode('utf8').encode('cp1251')
и наоборот и меняю начальную кодировку # -*- coding: utf-8 -*-
пока подберу….
инпутом вроде работает нормально,прогнал через список,все кодировка сменилась,в строке опять поменялась…короче пока выловишь
Офлайн
0
Да там символы могут быть и не русские. В них вся проблема.
В общем понятно что все через одно место. Я так и думал. . . виндуз. . Пусть лучше вопросиками заменяется. Я в линуксах стартую скрипт в общем то.
Офлайн
31
посмотри через онлайн декодеры кодировку которая на выхлопе
Отредактировано sanodin (Май 15, 2013 11:41:39)
Офлайн
0
сейчас там одна кодировка - завтра другая это не решение проблемы. перебор - решение. только не рациональное.
Можно определять кодировку по номеру символа char, но слишком много кода писать.
Простого варианта - нету. Если такое только в винде то винда идет лесом. Вот и все.
Офлайн
31
python 3.x.x с кодировкой получше
Отредактировано sanodin (Май 15, 2013 12:06:07)
Офлайн
0
ок гляну 3-ю версию, надо же когда то на нее переходить 
Офлайн
63
Посмотрите это http://www.python.su/forum/topic/21221/?page=2
Офлайн
0
4kpt
Вы про то что такого нету? И что странно что возникает потребность в кодировке?
Я тоже думаю что это маразм. Везде норм - в винде через ж.
Офлайн
63
Я, вообще-то, про это
pyuser
Попробуйте что-нибудь из chardet, cchardet, charade. (все можно взять на pypi.python.org)
Отредактировано 4kpt (Май 15, 2013 15:56:47)
Офлайн