Hi Bruno, In Guile, strings coming from the C world are assumed to be encoded in the current locale encoding. Like in C, the current locale is set using ‘setlocale’, and it’s up to the user to write (setlocale LC_ALL "") to set the locale according to the relevant environment variables. The problem comes with command-line arguments: the user hasn’t yet had a chance to call ‘setlocale’, yet they most likely have to be converted from locale encoding. Up to 2.0.3, they were instead assumed to be ASCII, and we’re looking into fixing it [0]. The trick we came up with is to look at $LANG, $LC_ALL, & co. and try to determine what the locale encoding “would be” if (setlocale LC_ALL "") were called [1]. To do that, I use a variant of ‘localecharset’ in Gnulib, with a special-case for the C locale: