[Spice-devel] [PATCH] fix bug: display error when dragging file with CJK characters
Cody Chan
int64ago at gmail.com
Thu Aug 7 11:22:30 PDT 2014
I submitted a patch several months ago about this issue,
here
http://lists.freedesktop.org/archives/spice-devel/2014-February/016158.html
I check it again, and find that the value of
g_key_file_to_data(keyfile,...) is always utf-8,
for the value of g_uri_list_extract_uris() is utf8 urlencode.
So the display problem is caused by vd_agent, but how it displays depends
on the
language of system, the following two screenshots show the difference:
http://int64ago-tmp.qiniudn.com/guest-Chinese.png
http://int64ago-tmp.qiniudn.com/guest-English.png
---
vdagent/file_xfer.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/vdagent/file_xfer.cpp b/vdagent/file_xfer.cpp
index e402eb2..553a3f3 100644
--- a/vdagent/file_xfer.cpp
+++ b/vdagent/file_xfer.cpp
@@ -81,7 +81,10 @@ void FileXfer::handle_start(VDAgentFileXferStartMessage*
start,
strcat(file_path, "\\");
strcat(file_path, file_name);
- handle = CreateFileA(file_path, GENERIC_WRITE, 0, NULL, CREATE_NEW, 0,
NULL);
+ int len = MultiByteToWideChar(CP_UTF8, 0, file_path, -1, NULL, 0);
+ wchar_t wfile_path[MAX_PATH];
+ MultiByteToWideChar(CP_UTF8, 0, file_path, -1, wfile_path, len);
+ handle = CreateFileW(wfile_path, GENERIC_WRITE, 0, NULL, CREATE_NEW,
0, NULL);
if (handle == INVALID_HANDLE_VALUE) {
vd_printf("failed creating %s %lu", file_path, GetLastError());
return;
--
1.9.3
--
QSBDT0RFUiBGUk9NIFJJRVNUIE9GIENUU0VV
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20140808/bb228ad2/attachment.html>
More information about the Spice-devel
mailing list