我尝试在 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