Maison >développement back-end >C++ >Comment puis-je convertir en toute sécurité une chaîne UTF-8 en wstring en C ?

Comment puis-je convertir en toute sécurité une chaîne UTF-8 en wstring en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-18 03:04:09122parcourir

How Can I Safely Convert a UTF-8 String to a wstring in C  ?

C : Conversion d'une chaîne en wstring tout en préservant l'encodage

Vous recevez une chaîne contenant des caractères japonais et souhaitez attribuer son contenu à une corde, ws. La tâche consiste à effectuer cette tâche sans introduire de problèmes d'encodage.

Solution :

En utilisant C 11 et supérieur, cette tâche peut être accomplie uniquement avec la bibliothèque standard.

Étape 1 : Inclure les éléments nécessaires En-têtes

#include <locale>
#include <codecvt>
#include <string>

Étape 2 : Créer un convertisseur

std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;

Ce convertisseur gérera la conversion entre UTF-8 (l'encodage des s) et UTF-16 (l'encodage de ws).

Étape 3 : Convertissez la chaîne en un wstring

std::wstring ws = converter.from_bytes(s);

Exemple :

std::string s = "おはよう";
std::wstring ws;

std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
ws = converter.from_bytes(s);

Remarque :

  • Cette solution suppose s contient des données Unicode codées en UTF-8 valides.
  • Pour un encodage plus complexe scénarios, pensez à utiliser std::codecvt_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