Hi,

I am attempting to handle raw filenames (which may be encoded differently 
than the character set used by the filesystem) gracefully.

I am looking for a function that is similar to:
g_filename_display_name(),

but instead of converting illegal byte sequence to Unicode replacement 
character (0xef 0xbf 0xbd in UTF-8), I would like the illegal byte sequence 
to be escaped to ASCII as in URI.

To be clear, I want UTF-8 characters remain UTF-8 and only escape non-UTF-8 
byte sequence. Is there a function that does that?

That is, I would like this string (demonstrating a mostly UTF-8 filename, 
with a raw character outside of UTF-8 character set):

Character:  P  r  e  s  e  n  t  a  c  i  ó  n  ó     .  s  x  i
Hex code:   50 72 65 73 65 6e 74 61 63 69 f3 6e c3 b3 2e 73 78 69

To be converted to this:
Character:  P  r  e  s  e  n  t  a  c  i  %  f  3  n  ó     .  s  x  i
Hex code:   50 72 65 73 65 6e 74 61 63 69 25 66 33 6e c3 b3 2e 73 78 69


I tried g_convert_with_fallback(str, -1, "UTF-8", "UTF-8" /* whatever 
codeset used by filesystem */, NULL, NULL, NULL, NULL), but this function 
won't accept non-UTF-8 input.

Thanks much for any hint.


-- 
Daniel Yek

_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to