Не знаю, чем тебе не нравится python 3. Но, надо сказать, что авторы Tcl поступили хитрее, введя аналогичные по уровню изменения в минорной версии 8.1. В результате народ взял и перешел, хотя где-то до 8.3 на это дело ворчали.
Да вот ровно этим и не нравиться — тотальной юникодизацией. Я предпочитаю иметь возможность не использовать юникод там, где он мне не нужен или мешает.
В ближайшие 100 лет кодировки никуда не денутся, так что выбросьте из головы эти мечты. С моей точки зрения правильным способом программирования на Python3 является использования байтовых строк, и лишь в редких случаях юникода.
Несколько примеров из моей личной практики: — FTP сервер и rsync; имена файлов в koi8-r, cp1251, utf-8; — файлы mp3; теги в них в cp1251, реже в utf-8; — zip-архив или torrent с файлами mp3 и плей-листами; имена файлов будут в локальной кодировке ФС или в utf-8, а плей-листы будут обязательно в cp1251.
Вот когда вымрут такие ретрограды как ты и Толченов, останутся ровно две кодировки- UTF-16 в винде и Джаве, и utf-8 во всем остальном.
Увидев имя файла, в 8-битной кодировке надо немедленно сказать на него convmv.
Тэги в MP3 надо использовать ID3v2, тем более что там и идиотских ограничений на размер нет, а плееры, которые их не умеют, по-моему уже все умерли естественной смертью. Кодировки имен файлов в zip-архиве, это все равно такая задница, что иначе как частотным анализом не разберешься.
Зачем нужна такая хрень как плей-листы, я никогда не понимал. Но это все равно текстовые файлы, и как и любые тексты их нужно конвертировать в utf-8 по факту включения в свой архив.
> Увидев … надо немедленно [skip] > Тэги в MP3 надо использовать…
Ага, ага, надо. Только почему-то это тебе надо, а тем, кто реально это использует, ни фига не надо. Как же так? ;-)
> Кодировки имен файлов в zip-архиве, это все равно такая задница, что иначе как частотным анализом не разберешься.
Бу-га-га. Там давно твой любимый юникод, но именно на него ты ругаешься. Прекрасно!
> Зачем нужна такая хрень как плей-листы, я никогда не понимал.
Ты вообще в музыке ничего не понимаешь. Плей-листы нужны для того, чтобы слушать произведения в том порядке, как это задумал автор альбома или сборника, не внося при этом нумерацию в имена файлов.
Не знаю почему тебе это не надо. Пять лет назад я Nokia N900, первый попавший мне в руки аппарат, который 1251 в тэгах знать не хотел, купил с твоей подачи.
Мы, видимо, про разные зип-архивы. В архивах, созданных под dos-windows старыми zip-ами cp866, мизинтерприторованная как cp437 и перекодированная в cp850. Юникодом там и не пахнет.
Ну, тебе надо, мне надо, ещё двум-трём людям надо. Больше пока не видно, чтобы было надо. И я в любом случае имена и содержимое файлов, теги и плей-листы перекодирую в koi8-r. :-)
Мне-то что, я этих кодировок уже в жизни видел... Не думаю, кстати, что больше 36 битов в ближайшее время понадобится. Пока что cтандартизировали всего чуть миллиона символов, из 16 принципиально доступных путем совместимого расширения UTF-8 миллиардов.
Не думаю, кстати, что больше 36 битов в ближайшее время понадобится.
Да-да, про 640 килобайт мы все помним... :) Прикол не в том, что "не понадобится".
Прикол в том, что тот же UTF-8 есть вторичный продукт "взаиможействия старой и новой логики". И дальше число стандартов ни в коем случае не будет уменьшаться. Только увеличиваться.
и UTF-64 родится не из-за нехватки пространства значений, а просто потому что найдутся очередные "делатели единого стандарта, в который надо запихнуть всё и отказаться от".
> Увидев имя файла, в 8-битной кодировке надо немедленно сказать на него convmv.
Увидев имя файла в 8-битной кодировке нужно немедленно забить ржавый гвоздь в голову автора ФС. Хотя бы за то, что в суперблоке ФС (в частности, у ext2/3/4) нет поля "кодировка имён файлов".
И не должно. Причем здесь суперблок файловой системы, на которой живут файлы разных юзеров, с которыми работают разные процессы, запущенные в разных локалях. Должна быть одна на всех кодировка. Вот как в NTFS - UTF16 и никаких. А в *nix из-за любви к char* - UTF-8 и никаких.
Кстати GNOME уже довольно давно, чуть ли не сначала века забивает юзерам ржавый гвоздь в голову, требуя чтобы кодировка имен файлов была UTF-8, независимо от локали.
И называет переменную, которая это требование отключает G_BROKEN_FILENAMES.
> Причем здесь суперблок файловой системы, При том, что могут приволочь, например, внешний (или не внешний) диск с другой машины.
> на которой живут файлы разных юзеров, с которыми работают разные процессы, запущенные в разных локалях
"локаль" != "кодировка". А у кого это не так, тому по пальцам арматуриной. Как, например, MS, у которых в консольных тулзах строки гвоздями приколочены, и гадят те тулзы на консоль с CP866 строками в CP1251 или еще какой-нибудь. И в новомодной ихней powershell я на такое натыкался.
PS. В NTFS еще и длина имени файла в символах (той самой UTF-16), а не в байтах (а это еще один гвоздь в голову авторам ext*, где таки, емнимс, байты, и их мало). Очень приятно получить архив с длинными именами из-под винды и получить при распаковке ругань про "имена не влезают".
> Кстати GNOME уже довольно давно А вот какого [censored] DE думает об кодировке имён файлов? Не его ума дело.
... и эти теги потом кракозябрами показываются в телефоне, и не могут по-другому, поскольку кодировка в них не указана.
Если кодировка не указана, она должна быть UTF-8, при наличии BOM в начале может быть UTF-16. Если указана, то должна быть такой, какая указана. С этой вашей cp1251 обычное дело - отдать контент в cp866...
У меня как раз с повсеместным внедрением UTF-8 наступило счастье с именами файлов. Они все стали в одной кодировке. FTP я, правда, практически не пользуюсь.
Кодировки utf-8 несуществует. Это довольно обшырный набор стандартных кодировок и деталей их поддержки плюс пачка нестандартных расшырений для того, что не влезло в стандарт.
И да, я, в отличие от некоторых собеседников, категорически против юникода. Люди, поставившые себе цэль перечислить все используемые человечеством символы -- либо дебилы либо идиоты, а, скорее всего, и то и другое. Пользоваться их поделиями не следует.
no subject
Date: 2016-03-23 12:55 pm (UTC)no subject
Date: 2016-03-23 01:16 pm (UTC)Но, надо сказать, что авторы Tcl поступили хитрее, введя аналогичные по уровню изменения в минорной версии 8.1. В результате народ взял и перешел, хотя где-то до 8.3 на это дело ворчали.
no subject
Date: 2016-03-23 01:18 pm (UTC)no subject
Date: 2016-03-23 01:23 pm (UTC)Кодировки текста, отличные от utf-8 давно пора истребить.
no subject
Date: 2016-03-23 01:41 pm (UTC)Несколько примеров из моей личной практики:
— FTP сервер и rsync; имена файлов в koi8-r, cp1251, utf-8;
— файлы mp3; теги в них в cp1251, реже в utf-8;
— zip-архив или torrent с файлами mp3 и плей-листами; имена файлов будут в локальной кодировке ФС или в utf-8, а плей-листы будут обязательно в cp1251.
no subject
Date: 2016-03-23 02:10 pm (UTC)Увидев имя файла, в 8-битной кодировке надо немедленно сказать на него convmv.
Тэги в MP3 надо использовать ID3v2, тем более что там и идиотских ограничений на размер нет, а плееры, которые их не умеют, по-моему уже все умерли естественной смертью.
Кодировки имен файлов в zip-архиве, это все равно такая задница, что иначе как частотным анализом не разберешься.
Зачем нужна такая хрень как плей-листы, я никогда не понимал. Но это все равно текстовые файлы, и как и любые тексты их нужно конвертировать в utf-8 по факту включения в свой архив.
no subject
Date: 2016-03-23 02:20 pm (UTC)[skip]
>
Ага, ага, надо. Только почему-то это тебе надо, а тем, кто реально это использует, ни фига не надо. Как же так? ;-)
>
Бу-га-га. Там давно твой любимый юникод, но именно на него ты ругаешься. Прекрасно!
>
Плей-листы нужны для того, чтобы слушать произведения в том порядке, как это задумал автор альбома или сборника, не внося при этом нумерацию в имена файлов.Ты вообще в музыке ничего не понимаешь.no subject
Date: 2016-03-23 02:26 pm (UTC)Мы, видимо, про разные зип-архивы. В архивах, созданных под dos-windows старыми zip-ами cp866, мизинтерприторованная как cp437 и перекодированная в cp850. Юникодом там и не пахнет.
no subject
Date: 2016-03-23 02:32 pm (UTC)Да, в старых zip, конечно, не юникод, там cp437 поверх cp866.
См. http://phdru.name/Software/Python/misc/
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-03-23 02:30 pm (UTC)то настанет пора вымирать тебе, так как актуальной кодировкой станет какое-нибудь UTF-64
no subject
Date: 2016-03-23 02:50 pm (UTC)no subject
Date: 2016-03-23 03:32 pm (UTC)Да-да, про 640 килобайт мы все помним... :)
Прикол не в том, что "не понадобится".
Прикол в том, что тот же UTF-8 есть вторичный продукт "взаиможействия старой и новой логики". И дальше число стандартов ни в коем случае не будет уменьшаться. Только увеличиваться.
и UTF-64 родится не из-за нехватки пространства значений, а просто потому что найдутся очередные "делатели единого стандарта, в который надо запихнуть всё и отказаться от".
НЕ ОТКАЖУТСЯ. :(
no subject
Date: 2016-03-24 08:33 am (UTC)Увидев имя файла в 8-битной кодировке нужно немедленно забить ржавый гвоздь в голову автора ФС.
Хотя бы за то, что в суперблоке ФС (в частности, у ext2/3/4) нет поля "кодировка имён файлов".
no subject
Date: 2016-03-24 08:52 am (UTC)Кстати GNOME уже довольно давно, чуть ли не сначала века забивает юзерам ржавый гвоздь в голову, требуя чтобы кодировка имен файлов была UTF-8, независимо от локали.
И называет переменную, которая это требование отключает G_BROKEN_FILENAMES.
no subject
Date: 2016-03-24 09:53 am (UTC)При том, что могут приволочь, например, внешний (или не внешний) диск с другой машины.
> на которой живут файлы разных юзеров, с которыми работают разные процессы, запущенные в разных локалях
"локаль" != "кодировка". А у кого это не так, тому по пальцам арматуриной. Как, например, MS, у которых в консольных тулзах строки гвоздями приколочены, и гадят те тулзы на консоль с CP866 строками в CP1251 или еще какой-нибудь. И в новомодной ихней powershell я на такое натыкался.
PS. В NTFS еще и длина имени файла в символах (той самой UTF-16), а не в байтах (а это еще один гвоздь в голову авторам ext*, где таки, емнимс, байты, и их мало). Очень приятно получить архив с длинными именами из-под винды и получить при распаковке ругань про "имена не влезают".
> Кстати GNOME уже довольно давно
А вот какого [censored] DE думает об кодировке имён файлов? Не его ума дело.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-03-24 12:16 pm (UTC)(no subject)
From:no subject
Date: 2016-03-23 04:10 pm (UTC)Если кодировка не указана, она должна быть UTF-8, при наличии BOM в начале может быть UTF-16. Если указана, то должна быть такой, какая указана. С этой вашей cp1251 обычное дело - отдать контент в cp866...
У меня как раз с повсеместным внедрением UTF-8 наступило счастье с именами файлов. Они все стали в одной кодировке. FTP я, правда, практически не пользуюсь.
no subject
Date: 2016-03-23 04:01 pm (UTC)no subject
Date: 2016-03-23 04:04 pm (UTC)no subject
Date: 2016-03-23 04:05 pm (UTC)no subject
Date: 2016-03-24 11:04 am (UTC)no subject
Date: 2016-03-24 11:34 am (UTC)no subject
Date: 2016-03-24 11:35 am (UTC)no subject
Date: 2016-03-24 11:48 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-03-24 11:41 am (UTC)