Найти - Пользователи
Полная версия: MP3 тэги. Кодировка. Проблемы.
Начало » Python для новичков » MP3 тэги. Кодировка. Проблемы.
1 2 3 4 5 6
asilyator
Какая-то логика в этом есть, не все программы поддерживают юникод, + обратная совместимость с <2.3.

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

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

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

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

mbcs.
Что это?

Вот здесь: os.listdir
Я os.walk() юзаю, а не os.listdir(). Почему я должен читать помощь к ней?
reclosedev
asilyator
+ обратная совместимость с <2.3.
Костыли-костылики.
Наверное для того и сделали 3-ю ветку, чтобы убрать проблемы пожертвовав обратной совместимостью.

asilyator
Я os.walk() юзаю, а не os.listdir(). Почему я должен читать помощь к ней?
Здесь можно согласиться. Но в защиту тех, кто писал документацию: os.listdir() описана раньше, в os.walk() есть упоминание об os.listdir() (хоть явно и не затрагивает тему кодировок).
asilyator
В яве хоть тег @see есть, а в питоне нет даже общепринятого стандарта документации, сопоставимого с явовским.
reclosedev
asilyator
В яве хоть тег @see есть, а в питоне нет даже общепринятого стандарта документации, сопоставимого с явовским.
Думаю, уже можно считать таковым Sphinx, с помощью которого сделана документация стандартной библиотеки и большинства сторонних модулей. В нем как раз есть
 .. seealso::
asilyator
Undecodable filenames will still be returned as string objects.
Wut? ОС API разве не в юникоде возвращает?
Андрей Светлов

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

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

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

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

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

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB