Уведомления

Группа в Telegram: @pythonsu

#1 Май 21, 2012 15:26:27

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

MP3 тэги. Кодировка. Проблемы.

Какая-то логика в этом есть, не все программы поддерживают юникод, + обратная совместимость с <2.3.

не все программы поддерживают юникод
Благодаря кривым рукам их авторов и авторов модулей?

+ обратная совместимость с <2.3.
Костыли-костылики.

В любом случае, ascii всегда конвертируется в юникод.

Напоминаю, на дворе 2012 год.

mbcs.
Что это?

Вот здесь: os.listdir
Я os.walk() юзаю, а не os.listdir(). Почему я должен читать помощь к ней?



Офлайн

#2 Май 21, 2012 17:37:14

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

MP3 тэги. Кодировка. Проблемы.

asilyator
+ обратная совместимость с <2.3.
Костыли-костылики.
Наверное для того и сделали 3-ю ветку, чтобы убрать проблемы пожертвовав обратной совместимостью.

asilyator
Я os.walk() юзаю, а не os.listdir(). Почему я должен читать помощь к ней?
Здесь можно согласиться. Но в защиту тех, кто писал документацию: os.listdir() описана раньше, в os.walk() есть упоминание об os.listdir() (хоть явно и не затрагивает тему кодировок).

Офлайн

#3 Май 21, 2012 17:52:12

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

MP3 тэги. Кодировка. Проблемы.

В яве хоть тег @see есть, а в питоне нет даже общепринятого стандарта документации, сопоставимого с явовским.



Офлайн

#4 Май 21, 2012 18:00:24

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

MP3 тэги. Кодировка. Проблемы.

asilyator
В яве хоть тег @see есть, а в питоне нет даже общепринятого стандарта документации, сопоставимого с явовским.
Думаю, уже можно считать таковым Sphinx, с помощью которого сделана документация стандартной библиотеки и большинства сторонних модулей. В нем как раз есть
 .. seealso::

Офлайн

#5 Май 21, 2012 18:08:52

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

MP3 тэги. Кодировка. Проблемы.

Undecodable filenames will still be returned as string objects.
Wut? ОС API разве не в юникоде возвращает?



Офлайн

#6 Май 21, 2012 18:55:22

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

MP3 тэги. Кодировка. Проблемы.

Подстверждаю: в тройке все в Юникоде. Некоторые API принимают еще и bytes по историческим причинам.



Офлайн

#7 Май 21, 2012 19:18:26

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

MP3 тэги. Кодировка. Проблемы.

Питон или ОС API? Если ОС, то на НТ есть аски и юникодные версии почти всех функций. При этом аски вызывают внутри юникодные версии той же функции.



Офлайн

#8 Май 21, 2012 21:19:32

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

MP3 тэги. Кодировка. Проблемы.

Я имел в виду Питон. Кстати, единственная известная мне ОС которая поддерживает юникод в своем API - Windows. Linux может работать с UTF-8 - что, согласитесь, строго говоря несколько иное



Офлайн

#9 Май 22, 2012 02:09:40

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

MP3 тэги. Кодировка. Проблемы.

Андрей Светлов
Подстверждаю: в тройке все в Юникоде. Некоторые API принимают еще и bytes по историческим причинам.
В тройке тот же косяк: если передать os.walk() bytes, результат будет тоже bytes. По крайней мере, строковые литералы там по дефолту юникод. Вот нафига так делать?



Офлайн

#10 Май 22, 2012 13:36:10

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

MP3 тэги. Кодировка. Проблемы.

Во первых, зачем передавать bytes, если есть str? Во вторых, не все OS поддерживают юникод. Иногда приходится передавать строку байт. Пример: имеем linux, ext2 с неверно указанными codepage и iochaset. В результате как-то работать с таким разделом можно будет только через bytes api.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version