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.
Es gibt verschiedene Möglichkeiten, die Enkodierung einer Zeichenfolge ohne explizite Erklärung zu bestimmen:
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.
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
, 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); `` ` InsgesamtInsgesamt 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.
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