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
Другие вопросы по тегам