Уведомления

Группа в Telegram: @pythonsu

#1 Май 15, 2013 10:31:08

Anton9121
Зарегистрирован: 2013-05-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

В виндузах уперся в cp1251

Здравствуйте. Помогите решить проблему с кодировкой.

У меня скрипт стартует subprocess (ffmpeg).
Скрипт в параметрах передает текст. Я хочу послать параметр в utf-8, но ffmpeg пишет в итоге иероглифы.
Если кодирую в cp1251, то неизвестные символы заменяются вопросами.

Если стартовать в окружении cygwin то там все боле менее. Но cygwin совершенно случайным образом при попытке стартовать subprocess вываливается в ошибку с библиотекой time.dll.

В *nix все хорошо.

В виндах вообще возможно решить проблему кодировки?

Офлайн

#2 Май 15, 2013 11:34:56

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

В виндузах уперся в cp1251

Сам часто сталкиваюсь,но только подбором кодировки во второй версии питона можно
пробую по разному
.decode('utf8').encode('cp1251')

и наоборот и меняю начальную кодировку # -*- coding: utf-8 -*-

пока подберу….

инпутом вроде работает нормально,прогнал через список,все кодировка сменилась,в строке опять поменялась…короче пока выловишь

Офлайн

#3 Май 15, 2013 11:37:56

Anton9121
Зарегистрирован: 2013-05-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

В виндузах уперся в cp1251

Да там символы могут быть и не русские. В них вся проблема.
В общем понятно что все через одно место. Я так и думал. . . виндуз. . Пусть лучше вопросиками заменяется. Я в линуксах стартую скрипт в общем то.

Офлайн

#4 Май 15, 2013 11:40:20

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

В виндузах уперся в cp1251

посмотри через онлайн декодеры кодировку которая на выхлопе

Отредактировано sanodin (Май 15, 2013 11:41:39)

Офлайн

#5 Май 15, 2013 11:45:00

Anton9121
Зарегистрирован: 2013-05-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

В виндузах уперся в cp1251

сейчас там одна кодировка - завтра другая это не решение проблемы. перебор - решение. только не рациональное.
Можно определять кодировку по номеру символа char, но слишком много кода писать.
Простого варианта - нету. Если такое только в винде то винда идет лесом. Вот и все.

Офлайн

#6 Май 15, 2013 12:05:25

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

В виндузах уперся в cp1251

python 3.x.x с кодировкой получше

Отредактировано sanodin (Май 15, 2013 12:06:07)

Офлайн

#7 Май 15, 2013 12:06:06

Anton9121
Зарегистрирован: 2013-05-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

В виндузах уперся в cp1251

ок гляну 3-ю версию, надо же когда то на нее переходить

Офлайн

#8 Май 15, 2013 12:07:39

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

В виндузах уперся в cp1251

Офлайн

#9 Май 15, 2013 12:22:13

Anton9121
Зарегистрирован: 2013-05-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

В виндузах уперся в cp1251

4kpt
Вы про то что такого нету? И что странно что возникает потребность в кодировке?
Я тоже думаю что это маразм. Везде норм - в винде через ж.

Офлайн

#10 Май 15, 2013 15:56:29

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

В виндузах уперся в cp1251

Я, вообще-то, про это

pyuser
Попробуйте что-нибудь из chardet, cchardet, charade. (все можно взять на pypi.python.org)



Отредактировано 4kpt (Май 15, 2013 15:56:47)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version