On 2010.08.10 at 15:34:02 +0400, Иван Лох wrote: > On Tue, Aug 10, 2010 at 02:16:12PM +0300, Elena Egorova wrote: > > vlc же абсолютно взрывает мозг своей неспособностью работать с > > русскими именами файлов. В котором открыть файл невозможно НИКАК. А > > Это нормальное поведение. Glib не знает априори кодировку файлов > в файловой системе. Если Вы не указали ее явно, то она полагается
Это - не нормальное поведение. Glib-у вообще НЕХРЕН знать про существование кодировок. Glib-у передали последоватльность байт, которая с точки зрения пользователя является именем файла, и его дело - скормить эту последовательность в системный вызов open как есть, не выполняя с ней никаких действий. Если имя файла надо отобразить в GUI, значит точно также надо передать эту последовательность байт в XmbDrawString. Она как-нибудь разберется. Она, в отличие от Glib и Gtk имеет представление о локали. То, что делает в данном случае GLIB называется неестественный интеллект. За который надо бить канделябрами. Ибо дело программы - делать что юзер сказал. Но вообще-то вся GLib лишний уровень абстракции. Который только портит жизнь. Если тебе нужно писать на С - пиши на C и НЕ ПОЛЬЗУЙСЯ левыми фреймоврками. Системные вызовы, libc, libX11. А если тебе нужно писать на языке высокого уровня - возьми ЯЗЫК высокого уровня. scheme, python, tcl. Но не пытайся делать из C язык высокого уровня посредсвом библиоте. Выйдет дерьмовина вроде Gtk. Впрочем, бывает еще хуже - называется Qt. Там не только для строк свою обвязку в графическом тулките изобрели - там уже и к звуку интерфейсы, и к базе данных и так далее. И все это на C++ у которого ABI между разными версиями одного и того же компилятора, не говоря уж о разных компиляторах не совместим. > UTF8. Теперь он смотрит на вашу локаль (KOI8-R) и конвертирует > имя файла из UTF8 в текщую локаль. Но такая операция, как правило, > приводит к ошибке. В множестве символов KOI8-R просто нет таких символов. > > Идея считать, что кодировка имен ФС и процесса одна и та же IMHO > -- много большее зло. > > > -- > To UNSUBSCRIBE, email to [email protected] > with a subject of "unsubscribe". Trouble? Contact [email protected] > Archive: http://lists.debian.org/[email protected] > -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

