[Spice-devel] [patch]spice-gtk: encoding problem when drag a file from client to guest

Marc-André Lureau mlureau at redhat.com
Mon Feb 17 04:47:31 PST 2014


Hi

----- Original Message -----
> hi, here's my environment:
> client: win7(default encoding is GBK)
> guest the same with client
> spice-gtk-0.23d
> 
> a file in guest with a name of Chinese
> the file name is wrong when drag it to guest desktop
> (I think Japanese and Korean have the same problem )
> 
> the following is my patch to " spice-gtk-0.23/gtk/channel-main.c"
> 
> Regards
> 
> --- spice-gtk-0.23/gtk/channel-main.c 2014-02-06 19:08:07.000000000 +0800
> +++ spice-gtk-0.23_modified/gtk/channel-main.c 2014-02-17 20:12:55.037816310
> +0800
> @@ -2786,8 +2786,10 @@
> 
> /* File name */
> basename = g_file_get_basename(file);
> - g_key_file_set_string(keyfile, "vdagent-file-xfer", "name", basename);

>From glib API reference, I understand basename is a byte string of unspecified encoding.

> + gchar *basename_loc = g_locale_from_utf8(basename, -1, NULL, NULL, NULL);

So this is probably wrong. You should also check for errors.

Instead, I think we should use g_file_info_get_display_name()

> + g_key_file_set_string(keyfile, "vdagent-file-xfer", "name", basename_loc);
> g_free(basename);
> + g_free(basename_loc);
> /* File size */
> g_key_file_set_uint64(keyfile, "vdagent-file-xfer", "size", task->file_size);
> 

Can you send patches using git-send-email (inline by default) or as attachments?

thanks


More information about the Spice-devel mailing list