On Mon, Feb 17, 2014 at 8:47 PM, Marc-André Lureau <mlureau@xxxxxxxxxx> wrote: > 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. > unspecified encoding == "utf-8" or unspecified encoding == locale encoding? do you mean locale encoding? >> + gchar *basename_loc = g_locale_from_utf8(basename, -1, NULL, NULL, NULL); > > So this is probably wrong. You should also check for errors. yeah, actually, i use g_convert(basename, -1, "gbk", "utf-8", ...) to get a right result but I don't think it's a general case, so patch it with g_locale_from_utf8(...) I'll keep testing to Confirm the problem > Instead, I think we should use g_file_info_get_display_name() thx, I'd try >> + 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? sorry, it's my first time to send a patch in mail list, thank you for Remind :) > thanks _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel