I found a solution for Ubuntu 13.04.
- Open /usr/bin/xdg-open as root
- go to the sub routine open_lxde()
- After the line
local file="$(echo "$1" | sed 's%^file://%%')"
add the following two lines:
local printf=/usr/bin/printf
file="$($printf "$(echo "$file" | sed -e 's@%\([a-f0-9A-F]\{2\}\)@\\x\1@g')")"
The problem is, that the lxde_open() is quite of buggy. This sub tries to convert an URI that starts with "file://" to an absolute path, but I fails to deal with special chars like %20. So
file:///home/lib/Isaac%20Asimov.pdf
becomes
/home/lib/Isaac%20Asimov.pdf
This is not a valid file name. So the known "file or directory not found"-window appears.
I c&p the above two lines from the "open_generic" subroutine where this is done right.
Thanks to Kovod for the hint with xdg-open.
"Guten Rutsch" from Germany and a happy new year!