>>неужели никто не решал такие проблемы
>
>Апстрим старательно коллекционирует их в http://www.mozilla.org/releases/mozilla1.8b1/known-issues-in... - про инсталяцию в папки с
>именами, создание профилей с именами, кривые тайтл-бары в виндоу манагерах и Это не мозила.
>Оно в Gtk2, может быть? ... G://gtk2 unicode filenames problem
Как и было в первоначальном вопросе -- "оно" в Gtk.
------------------------------------------------------------->8---
Исходные данные:
Дистрибутив -- Debian OS GNU/Linux 4.0 "Etch"
Броузер -- iceape (де-брэнд SeaMonkey, если кто не в курсе)
Локаль -- LANG=ru_RU.KOI8-R
Проблема -- Сохранение файла с русским именем происходит криво, и имя требует "починки" имени через [что-нибудь вроде] {{mv %f "`echo "%f"|recode -f u8..`"}} (%f - в нотации Midnoght Commander-а - имя файла).
Пример: Вместо пользователь.txt на диске получается п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩я▄.txt.
Проверяемое решение:
>Может G_BROKEN_FILENAMES/G_FILENAME_ENCODING http://bugs.archlinux.org/task/5487 - это решение?...
Проверил: запустил iceape вот так:
$ G_BROKEN_FILENAMES=1 G_FILENAME_ENCODING=@locale iceape
Пошёл, сохранил "проблемный" файл. Заработало! :)
Итого: Сохранился с нормальным русским именем, переименование больше не требуется, имя выглядит "как надо".
Более-менее долговременный фикс: В Etch запуск iceape уже обёрнут шелл-скриптом. /usr/bin/iceape уже экспортирует массу переменных среды для бинарника. Добавил в него экспорт этих двух переменных, как на bugs.archlinux, запустил -- работает.
--- iceape-0000-orig
+++ iceape-0001-gtk-vs-utf8-kludge
@@ -1,5 +1,9 @@
#!/bin/sh
#
+G_BROKEN_FILENAMES=1
+export G_BROKEN_FILENAMES
+G_FILENAME_ENCODING=@locale
+export G_FILENAME_ENCODING
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
Замечания.
* Понятно, что при обновлении/переустановке пакета "фикс" пропадёт...
* TODO? Починка других приложений: обёртывание аналогичными скриптами или экспорт этих флагов для "всей системы" (или для "всех иксов", для всех [X-]приложений отдельного пользователя, или ...) из соответствующих скриптов/конфигураций.