我正在尝试在 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'.
从应用程序本身打开相同的文件(使用 File > Open..)不会产生任何问题。
空格和逗号的编码方式似乎不同,使用 %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'.
知道如何解决这个问题吗?
我找到了解决方案并为此提交了一个错误: https ://bugs.launchpad.net/ubuntu/+source/ltsp/+bug/1451915
这是由 LTSP 打开本地应用程序的方式引起的:LTSP 设置了一个包含命令和参数的 X 属性,该属性在客户端上读取然后执行。
被客户替换为
但这使用 8 位编码。如果您将“8s”更改为“8u”,它将使用 UTF-8 unicode 字符串,这似乎可以解决问题。
需要修改的文件是: