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

Comment convertir correctement UTF-8 en ISO-8859-1 en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-08 14:11:46382parcourir

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

Résoudre le problème de conversion UTF-8 vers ISO-8859-1 en C#

Lors de la conversion de chaînes UTF-8 en ISO-8859-1, vous pouvez rencontrer des erreurs de résultat si elles ne sont pas traitées correctement. Analysons le problème et apportons une solution.

Code et questions

L'extrait de code que vous avez fourni tente de convertir UTF-8 en ISO-8859-1 à l'aide de Encoding.GetString et Encoding.GetBytes. Cependant, pour cette conversion particulière, des étapes supplémentaires sont nécessaires.

Solution : utilisez Encoding.Convert

Pour ajuster correctement le tableau d'octets avant le décodage vers l'encodage cible, Encoding.Convert doit être utilisé. Voici le code modifié :

<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>

Explication

Encoding.GetEncodingRécupère l'encodeur et le décodeur pour un encodage de caractères spécifique. Encoding.GetBytesEncodez la chaîne source UTF-8 dans un tableau d'octets. Cependant, décoder ce tableau d'octets directement à l'aide de Encoding.GetString ne produit pas la chaîne ISO-8859-1 souhaitée.

Encoding.ConvertAjustez le tableau d'octets pour qu'il corresponde à l'encodage cible. Dans ce cas, il convertit les octets pour qu'ils correspondent au codage ISO-8859-1. Le tableau d'octets ajusté peut ensuite être décodé en une chaîne ISO-8859-1 correcte. Encoding.GetString

Résultats

Après avoir appliqué cette modification, votre chaîne résultante sera correctement convertie en ISO-8859-1 et ne sera pas tronquée.

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