On Wed, 2015-03-11 at 18:09 -0600, Daniel Espinosa wrote:
I've used this for encode/decode strings in a GTK app, is it necessary to call GLib.Intl.setlocale at app start?
It depends on what you want to do. It doesn't alter the encoding/decoding, it alters how printf (and other functions behave).
And if it is a GLIB library, should I call setlocale to initialize it?
Not completely sure what you're asking, so a few points: * The application should be calling setlocale, not a library. * Using glib does not preclude you from having to call setlocale. * You should call setlocale if the C locale isn't appropriate for you. It's 7 bit ASCII, so if you have an "á" somewhere then yes, you probably need to call it. You might want to consider reading the setlocale(3) man page and/or section 7.11.1 of the C11 standard (or the corresponding part of C89 or C99—I don't have those handy, though, so I can't give you the section number).
El mar 10, 2015 8:14 PM, "Evan Nemerson" <evan coeus-group com> escribió:It decodes fine. The same thing happens when you try to print t instead of s2. You forgot to call setlocale: GLib.Intl.setlocale (GLib.LocaleCategory.ALL, ""); Or, if you're using 0.28, just GLib.Intl.setlocale(); will work. On Tue, 2015-03-10 at 16:43 -0600, Daniel Espinosa wrote:I would like to know how Vala Base64 encode/decode UTF-8 strings. If my string have no special characters, Base64 encode/decode works flawlessly. But if it has a character like "á" it fails to decode, well when try to cast to string fails. Code: public class App : Object { public static void main () { var app = new App (); var t = "á"; var s = GLib.Base64.encode (t.data); var s2 = GLib.Base64.decode (s); GLib.message ("TEXT: "+(string)s2); } } Text printed is: ** Message: string.vala:10: TEXT: ? Expected message should be: ** Message: string.vala:10: TEXT: á Please help me.
Attachment:
signature.asc
Description: This is a digitally signed message part