How can I find the current locale's charset in C?
setlocale(LC_ALL, NULL) returns "en_US.UTF8", but is there a way to get the charset? In /etc/locale.gen on my system it lists the locales and the charsets, so it's not in the name.
You can query various parameters of the current locale using the nl_langinfo
(3) function. The charset is obtained by calling nl_langinfo(CODESET)
.
Note, that you have to call setlocale
before using nl_langinfo
to make your program locale-aware.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With