Maison >développement back-end >C++ >Comment convertir entre UTF-8 et des chaînes de caractères larges en C ?

Comment convertir entre UTF-8 et des chaînes de caractères larges en C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 09:18:17619parcourir

How to Convert Between UTF-8 and Wide Character Strings in C  ?

Conversion UTF8 vers/depuis Wide Char en STL

Conversion du texte Unicode représenté sous forme de chaînes UTF-8 dans std::string en caractère large les chaînes dans std::wstring et vice versa sont essentielles pour la programmation indépendante de la plate-forme. Voici comment y parvenir à l'aide de la bibliothèque standard C :

UTF-8 vers UTF-16

C 11 a introduit std::wstring_convert, qui facilite les conversions entre étroit et chaînes de caractères larges :

std::string utf8Source;
...
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
std::u16string utf16Destination = converter.from_bytes(utf8Source);

UTF-16 à UTF-8

La conversion d'UTF-16 en UTF-8 est similaire :

std::u16string utf16Source;
...
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
std::string utf8Destination = converter.to_bytes(utf16Source);

Cette approche utilise la puissante fonction std::wstring_convert de la bibliothèque standard C, offrant un solution standardisée et efficace pour les conversions de caractères multiplateformes à l'échelle UTF8.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn