For example, if path to my wallpaper contain Chinese or Japanese characters, I cannot set wallpaper in command line with the following command: xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s ~/pic/wall/y.叶/3.jpg But if it does not contain Chinese character, I can properly set the wallpaper: xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s ~/pic/wall/Vladstudio.1/1920vladstudio_1011.jpg On the other hand, if I manually enter the file path in xfconf GUI. It works. No matter it contains Chinese character or not. Also, I cannot set wallpaper that has Chinese characters in its path with thunar wallpaper plugin. I guess it is caused by this bug of xfconf.
xfce@xfce-laptop:~/svn-repo/xfconf/trunk/xfconf-query$ xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s ~/pic/wall/y.叶/3.jpg option parsing failed: Invalid byte sequence in conversion input you mean like that?
Could you test revision 28840?
Hmm, I'm not sure that that will fix the problem... or even if it does, it's not the whole problem. Paths and such should be stored in utf8 in the xfconf store, and should probably be converted from the locale encoding (or filesystem encoding?) when typed on the commandline. Apps that use paths from xfconf should convert them back into the filesystem encoding before using them.
i have the same problem xfconf-svn 29428 xfdesktop-svn 19430 thunar-svn 29417 i'll update it every day
Created attachment 2180 set the locale Add a call to: setlocale (LC_ALL, ""); before calling xfce_textdomain() which only sets the translation domain, not the locale.
Need a configure check for setlocale(), unless just wrapping that call in the HAVE_LOCALE_H ifdef is enough. Also should wrap both of those in an ENABLE_NLS ifdef. Otherwise things break...
Created attachment 2181 set the locale2 Patch updated! I'm not sure for ENABLE_NLS (i don't know what it is), tho setlocale() is surrounded with it in the patch. Also, I did something else, that is scratching the #include <glib/i18n.h> stuff as this is done with libxfce4util.
I didn't notice, but the AC_CHECK_FUNCS is commented.
I think this is the wrong approach. We should do proper name encoding using g_filename_to_utf8/g_locale_to_utf8 and store the utf-8 name in xfconf. Xfdesktop should read the xfconf name and use g_filename_from_utf8/g_locale_from_utf8 and use the locale filename to read the wallpaper.
(In reply to comment #9) > I think this is the wrong approach. It's not.
I have committed the patch in revision 29522. Nick has a point though, he could be on to a second part of this bug. Though it could be glib-dbus does the utf8 conversion for us.
I'm marking this report as fixed, since the patch was pushed and noone complained in years about an issue still occurring.