xdg-open использует неправильную кодировку символов в LTSP
Я пытаюсь открыть файлы в локальном приложении в системе LTSP. Но если путь содержит символы с акцентом, например é
, он не может быть открыт, потому что кажется, что URI закодирован неправильно.
Кажется, что проблема заключается в том, как gvfs-open отправляет URI файла:
gvfs-open /home/user/testé/test.mov
VLC is unable to open the MRL 'file:///home/user/test303251/test.mov'.
Открытие того же файла из самого приложения (с помощью меню "Файл"> "Открыть") не создает проблем.
Пробелы и запятые, похоже, кодируются по-разному, с%20, и не доставляют никаких проблем.
gvfs-open /home/user/this is testé/test.mov
VLC is unable to open the MRL 'file:///home/user/this%20is%20test303251/test.mov'.
Есть идеи, как это можно исправить?
1 ответ
Я нашел решение и подал ошибку для этого: https://bugs.launchpad.net/ubuntu/+source/ltsp/+bug/1451915
Это было вызвано тем, как LTSP открывает локальные приложения: LTSP устанавливает свойство X, содержащее команду и аргументы, которые читаются на клиенте и затем выполняются.
/usr/bin/vlc --started-from-file %U
заменяется на клиентов
xprop -root -f LTSP_COMMAND 8s -set LTSP_COMMAND "/usr/bin/vlc --started-from-file %U"
Но для этого используется 8-битная кодировка. Если вы измените "8s" на "8u", он будет использовать строку Unicode UTF-8, которая, похоже, решит проблему.
Файл, который необходимо изменить:
/opt/ltsp/i386/usr/bin/ltsp-genmenu