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

Comment convertir correctement les chaînes UTF-8 en ISO-8859-1 en C# ?

DDD
Libérer: 2025-01-08 14:21:40
original
466 Les gens l'ont consulté

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

Gérer correctement les conversions de chaînes UTF-8 vers ISO-8859-1 en C#

La conversion directe des chaînes UTF-8 en ISO-8859-1 (Latin-1) entraîne souvent une perte de données et une corruption des caractères. En effet, UTF-8 utilise un codage de longueur variable, tandis que ISO-8859-1 est un codage sur un seul octet de longueur fixe. Changer simplement le codage sans conversion d'octet appropriée entraînera une sortie incorrecte.

La clé d'une conversion précise réside dans l'utilisation de la méthode Encoding.Convert. Cette méthode mappe correctement les octets UTF-8 à leurs équivalents ISO-8859-1, en gérant toutes les transformations nécessaires. Les caractères non présents dans l'ISO-8859-1 seront remplacés par leurs meilleures approximations ou pourront être perdus.

Voici le code C# corrigé :

<code class="language-csharp">Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
string utf8String = "ÄäÖöÕõÜü"; // Example UTF-8 string
byte[] utf8Bytes = utf8.GetBytes(utf8String);
byte[] isoBytes = Encoding.Convert(utf8, iso, utf8Bytes);
string iso88591String = iso.GetString(isoBytes);</code>
Copier après la connexion

Ce code récupère d'abord les octets UTF-8 de la chaîne d'origine. Ensuite, Encoding.Convert transforme ces octets en une représentation adaptée à l'ISO-8859-1. Enfin, le tableau d'octets résultant est décodé à l'aide du codage ISO-8859-1 pour produire la chaîne finale. N'oubliez pas que tous les caractères extérieurs au jeu de caractères ISO-8859-1 peuvent être perdus ou remplacés au cours de ce processus.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal