xdg-open 在 LTSP 上使用错误的字符编码

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”,它将使用 UTF-8 unicode 字符串,这似乎解决了问题。

需要更改的文件是:

/opt/ltsp/i386/usr/bin/ltsp-genmenu

相关内容