La détermination précise de l'encodage des chaînes est essentielle pour le traitement des données textuelles provenant de différentes sources. Cet article explique comment y parvenir efficacement en C#.
Il existe plusieurs façons de déterminer l'encodage d'une chaîne sans le préciser explicitement :
Le code fourni combine les trois méthodes pour déterminer l'encodage d'une chaîne, en commençant par la détection de la nomenclature. Si la nomenclature n'est pas trouvée, le code utilise des détecteurs pour identifier de manière heuristique les codages courants tels que UTF-8 et UTF-16. Enfin, si aucun codage approprié n'est trouvé, il reviendra à la page de codes par défaut du système.
Ce code détecte non seulement l'encodage, mais renvoie également le texte décodé pour fournir pleinement les informations requises.
Le code C# suivant implémente cette solution :
public Encoding detectTextEncoding(string filename, out String text, int taster = 1000) { // 检查BOM // 为简洁起见省略 // 基于探测器的编码检测 bool utf8 = false; int i = 0; while (i < taster) { // 省略具体实现细节 } // ... (其余代码省略) }
Pour utiliser ce code, fournissez le chemin du fichier sous forme de chaîne et récupérez l'encodage détecté et le texte décodé en tant que paramètres de sortie. Voici un exemple :
```c# texte de chaîne ; Encodage encoding = detectTextEncoding("mon_fichier.txt", hors texte); Console.WriteLine("Encodage détecté : " encoding.EncodingName); Console.WriteLine("Texte décodé : " texte); ```En résumé, ce code fournit un moyen puissant de déterminer l'encodage d'une chaîne en C#, en utilisant la nomenclature et des vérifications heuristiques pour garantir une détection précise.
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!