Identifier avec précision l'encodage des fichiers en C#
Déterminer avec précision l'encodage d'un fichier est crucial pour un traitement correct des données. Bien que StreamReader.CurrentEncoding
échoue parfois, une méthode plus robuste consiste à analyser la marque d'ordre des octets (BOM). Cette approche, similaire à celle utilisée dans Notepad , offre une plus grande précision.
Exploiter la marque d'ordre des octets (BOM)
La présence d'une nomenclature facilite considérablement l'identification du codage. Les valeurs de nomenclature suivantes correspondent à des encodages spécifiques :
Si aucune nomenclature n'est détectée, le code par défaut est ASCII pour éviter les erreurs.
Implémentation de code C# pour l'analyse de nomenclature
Le code C# suivant illustre cette détection d'encodage basée sur la nomenclature :
<code class="language-csharp">public static Encoding GetEncoding(string filename) { byte[] bom = new byte[4]; using (FileStream file = new FileStream(filename, FileMode.Open, FileAccess.Read)) { file.Read(bom, 0, 4); } // BOM analysis logic (see complete implementation below) return Encoding.ASCII; // Default to ASCII if no BOM is found }</code>
Cette fonction lit efficacement les octets initiaux du fichier et les utilise pour déterminer l'encodage. Une implémentation complète de l'analyse de la nomenclature suivrait alors, traitant chaque cas de nomenclature individuellement pour renvoyer l'objet Encoding
approprié. Cela garantit une détection fiable de l'encodage dans différents formats de fichiers texte.
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!