Je programme en C et je veux que tous les UTF (ex: "ru_RU-UTF-8", "en_EN-UTF-8", etc.) passent à la version wchar_t
(en utilisant la fonction mbrtowc
) . Peu importe ce que wchar_t
il convertit à particulièrement, tant que c'est un wchar_t
valide dans certains locaux.Existe-t-il un environnement local UTF-8 pour N'IMPORTE QUELLE langue/pays?
Y a-t-il un paramètre "UTF-8-whatever" que je peux transmettre aux paramètres régionaux?
Comme je suis à la recherche de l'exact opposé de setlocale("POSIX")
/setlocale("C")
.
Pour clarifier les choses, le code C ...
setlocale(LC_ALL, "ru_RU.UTF-8");
stuff = mbrtowc(.....)
œuvres, où le code C ...
setlocale(LC_ALL, "en_US.UTF-8");
stuff = mbrtowc(.....)
retours -1
dès qu'elle frappe cyrillique. Les choses que j'ai affaire peuvent aussi avoir des caractères japonais, etc ...
Utilisez une bibliothèque qui gère cela pour vous, comme 'iconv'. Je ne pense pas qu'il existe un tel "* locale *". –
Je vais certainement regarder dans iconv, merci. –
Qu'est-ce que "RU-UTF-8" etc. Et 'wchar_t' n'est pas garanti pour représenter les codages Unicode. Cela dépend de la plate-forme. – Olaf