Maison >développement back-end >C++ >Comment convertir correctement une chaîne UTF-8 en ISO-8859-1 en C# ?

Comment convertir correctement une chaîne UTF-8 en ISO-8859-1 en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-08 14:34:40340parcourir

How to Correctly Convert a UTF-8 String to ISO-8859-1 in C#?

Convertir correctement les chaînes UTF-8 en ISO-8859-1 en C#

La conversion directe d'une chaîne UTF-8 en ISO-8859-1 peut entraîner une perte de données ou des résultats incorrects. La clé est de gérer correctement la représentation sous forme de tableau d’octets de la chaîne. Une erreur courante consiste à décoder incorrectement les octets UTF-8 en utilisant le codage ISO-8859-1.

La solution implique un processus en deux étapes : d'abord convertir le tableau d'octets UTF-8 en un tableau d'octets ISO-8859-1, puis décoder ce tableau d'octets à l'aide du codage ISO-8859-1. Cela évite une mauvaise interprétation des octets.

Voici le code C# corrigé :

<code class="language-csharp">Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(Message);
byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes);
string msg = iso.GetString(isoBytes);</code>

Cette approche utilise Encoding.Convert pour effectuer une conversion octet par octet appropriée, garantissant que la chaîne résultante reflète avec précision les données d'origine dans les limites du codage ISO-8859-1 (qui ne prend en charge qu'un sous-ensemble de caractères présents en UTF-8). N'oubliez pas que les caractères non représentables en ISO-8859-1 seront perdus ou remplacés lors de cette conversion.

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