Am 21.01.19 um 16:00 schrieb Stefan Baur:
> My guess is that FAT32 (to be more precise: the vfat mount module)
> doesn't support UTF-8 out of the box, and/or you're using some regional
> charset (KOI8-R, maybe?) instead of UTF-8.  On a system that expects
> UTF-8, this will cause confusion ...

Well, looking at the source of x2gousbmount, I think the problem is this:

if (system("mount -tntfs $dev /media/$name/$ldev -o
uid=$user,sync,uni_xlate") == 0)

[...]

elsif (system("mount -tvfat $dev /media/$name/$ldev -o
uid=$user,sync,uni_xlate") == 0)

[...]

So for both ntfs and vfat mounts, uni_xlate is set.

man mount says for ntfs:

uni_xlate={0|1|2}
For 0 (or `no' or `false'), do not use escape sequences for unknown
Unicode characters.  For 1 (or `yes' or `true') or 2, use vfat-style
4-byte escape sequences starting with ":".  Here 2 give a little-endian
encoding and 1 a byteswapped bigendian encoding.

while for vfat, the same parameter is documented to do something else:
uni_xlate
Translate unhandled Unicode characters to special escaped sequences.
This lets you backup and restore filenames that are created with any
Unicode characters.  Without this option, a '?' is used when no
translation is possible.  The escape character is ':' because it is
otherwise invalid on the vfat filesystem.  The escape sequence that gets
used, where u is the Unicode character, is: ':', (u & 0x3f), ((u>>6) &
0x3f), (u>>12).

AND man mount also says under "vfat"

utf8
UTF8 is the filesystem safe 8-bit encoding of Unicode that is used by
the console.  It can be enabled for the filesystem with this option or
disabled with utf8=0, utf8=no or utf8=false. If  'uni_xlate'  gets  set,
UTF8 gets disabled.

The last sentence is the important one.

So, since we are setting uni_xlate for the vfat mounts, utf8 gets
disabled, which explains why you're seeing the hex codes instead.

A workaround for you is to cd into the
./patch/includes.chroot/usr/lib/x2go/tce/ directory you created, and
edit the file x2gousbmount there.

Look for the line

elsif (system("mount -tvfat $dev /media/$name/$ldev -o
uid=$user,sync,uni_xlate") == 0)

(all on one line)

and replace 'uni_xlate' with 'utf8'.

After that, create a new build and deploy it.

Please let us know if that worked.  If it did, we will have to think
about how to handle this in future releases.

Kind Regards,
Stefan Baur

-- 
BAUR-ITCS UG (haftungsbeschränkt)
Geschäftsführer: Stefan Baur
Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364
Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
_______________________________________________
x2go-user mailing list
x2go-user@lists.x2go.org
https://lists.x2go.org/listinfo/x2go-user

Reply via email to