Encoding
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'.
從應用程序本身打開相同的文件(使用 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 屬性,該屬性在客戶端上讀取然後執行。
/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