„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann man die String -Codierung in C#effizient erkennen?

Wie kann man die String -Codierung in C#effizient erkennen?

Gepostet am 2025-04-20
Durchsuche:324

How Can I Efficiently Detect a String's Encoding in C#?

Effiziente Erkennung der String -Codierung in C#

genaues Urteil über die String -Codierung ist entscheidend für die Verarbeitung von Textdaten aus verschiedenen Quellen. In diesem Artikel wird untersucht, wie dieses Ziel in C#effizient erreicht werden kann.

codierung coding

Es gibt verschiedene Möglichkeiten, die Enkodierung einer Zeichenfolge ohne explizite Erklärung zu bestimmen:

  1. bom (byte order mark): Viele Unicode-Encodings enthalten am Anfang einer Datei Drei-Byte- oder Vier-Byte-Unterschriften, um ihre Codierung anzuzeigen. Beispielsweise verwendet UTF-8 0xeFBBBBF.
  2. sheuristic check: Indem wir die ersten Bytes einer Zeichenfolge überprüfen, können wir versuchen, die Codierung zu erkennen. Beispielsweise hat UTF-8 ein Byte-Muster, bei dem ein bestimmtes Hochbit festgelegt wird.
  3. metadata in Datei: einige Dateien betten codierten Informationen in ihren Inhalt oder in Metadaten ein. Finden Sie Muster im Text wie "charset = xyz" oder "coding = xyz".

Lösung Übersicht

Der von

bereitgestellte Code kombiniert alle drei Methoden, um die Codierung einer Zeichenfolge zu bestimmen, von der zunächst die BOM -Erkennung ist. Wenn die BOM nicht gefunden wird, verwendet der Code einen Detektor, um heuristisch gemeinsame Codierungen wie UTF-8 und UTF-16 zu identifizieren. Wenn es schließlich keine geeignete Codierung gefunden wird, fällt es auf die Standardcodeseite des Systems zurück.

Dieser Code erkennt nicht nur die Codierung, sondern gibt auch den dekodierten Text zurück, um die erforderlichen Informationen vollständig bereitzustellen.

code implementierung

Der folgende C# Code implementiert diese Lösung:

public Encoding detectTextEncoding(string filename, out String text, int taster = 1000)
{
    // 检查BOM
    // 为简洁起见省略

    // 基于探测器的编码检测
    bool utf8 = false;
    int i = 0;
    while (i 

useage method

, um diesen Code zu verwenden, den Dateipfad als Zeichenfolge anzugeben und den erkannten codierten und dekodierten Text als Ausgabeparameter abzurufen. Hier ist ein Beispiel:

`` `C# Stringtext; Codieren coding = detectTextCoding ("my_file.txt", out text); Console.writeLine ("erkannt Codierung:" coding.encodingName); Console.writeLine ("dekodierter Text:" Text); `` ` Insgesamt

Insgesamt bietet dieser Code eine leistungsstarke Möglichkeit, die Codierung von Zeichenfolgen in C#zu bestimmen und Bom- und heuristische Überprüfungen zu nutzen, um eine genaue Erkennung zu gewährleisten.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3