Heim > Backend-Entwicklung > C++ > Wie kann ich die Codierung einer Datei in C# genau bestimmen?

Wie kann ich die Codierung einer Datei in C# genau bestimmen?

Linda Hamilton
Freigeben: 2025-01-17 01:41:08
Original
207 Leute haben es durchsucht

How Can I Accurately Determine a File's Encoding in C#?

Genaue Identifizierung der Dateikodierung in C#

Die genaue Bestimmung der Kodierung einer Datei ist für die korrekte Datenverarbeitung von entscheidender Bedeutung. Während StreamReader.CurrentEncoding manchmal fehlschlägt, besteht eine robustere Methode darin, die Byte Order Mark (BOM) zu analysieren. Dieser Ansatz ähnelt dem in Notepad verwendeten und bietet eine höhere Präzision.

Nutzung der Byte Order Mark (BOM)

Das Vorhandensein einer Stückliste erleichtert die Codierungsidentifizierung erheblich. Die folgenden Stücklistenwerte entsprechen bestimmten Kodierungen:

  • UTF-7: 0x2b, 0x2f, 0x76
  • UTF-8: 0xef, 0xbb, 0xbf
  • UTF-32LE: 0xff, 0xfe, 0x00, 0x00
  • UTF-16LE: 0xff, 0xfe
  • UTF-16BE: 0xfe, 0xff
  • UTF-32BE: 0x00, 0x00, 0xfe, 0xff

Wenn keine Stückliste erkannt wird, wird der Code standardmäßig auf ASCII eingestellt, um Fehler zu vermeiden.

C#-Code-Implementierung für die Stücklistenanalyse

Der folgende C#-Code demonstriert diese Stücklisten-basierte Codierungserkennung:

<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>
Nach dem Login kopieren

Diese Funktion liest effizient die Anfangsbytes der Datei und verwendet sie, um die Codierung zu bestimmen. Anschließend würde eine vollständige Implementierung der Stücklistenanalyse erfolgen, bei der jeder Stücklistenfall einzeln behandelt wird, um das entsprechende Encoding-Objekt zurückzugeben. Dies gewährleistet eine zuverlässige Kodierungserkennung in verschiedenen Textdateiformaten.

Das obige ist der detaillierte Inhalt vonWie kann ich die Codierung einer Datei in C# genau bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage