Verwenden Sie Byte Order Mark (BOM), um die Dateikodierung genau zu bestimmen
Die genaue Bestimmung der Dateikodierung ist entscheidend für die Gewährleistung der Datengenauigkeit und Kompatibilität zwischen Plattformen. Dies kann eine Herausforderung sein, insbesondere bei obskuren oder unzuverlässigen Methoden wie Notepad.
Eine sehr genaue Möglichkeit, die Codierung einer Datei zu identifizieren, ist die Analyse der Byte Order Mark (BOM) der Datei. Die Stückliste ist eine bestimmte Bytefolge, die die Kodierung einer Textdatei angibt.
Mithilfe einer Programmiersprache können wir die Stückliste aus einer Textdatei abrufen und sie analysieren, um ihre Codierung zu bestimmen. Wenn die Datei über eine Stückliste verfügt, kann diese Methode die Codierung genau identifizieren. Zum Beispiel der folgende C#-Code:
<code class="language-csharp">public static Encoding GetEncoding(string filename) { // 读取 BOM var bom = new byte[4]; using (var file = new FileStream(filename, FileMode.Open, FileAccess.Read)) { file.Read(bom, 0, 4); } // 分析 BOM if (bom[0] == 0x2b && bom[1] == 0x2f && bom[2] == 0x76) return Encoding.UTF7; if (bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf) return Encoding.UTF8; if (bom[0] == 0xff && bom[1] == 0xfe && bom[2] == 0 && bom[3] == 0) return Encoding.UTF32; //UTF-32LE if (bom[0] == 0xff && bom[1] == 0xfe) return Encoding.Unicode; //UTF-16LE if (bom[0] == 0xfe && bom[1] == 0xff) return Encoding.BigEndianUnicode; //UTF-16BE if (bom[0] == 0 && bom[1] == 0 && bom[2] == 0xfe && bom[3] == 0xff) return new UTF32Encoding(true, true); //UTF-32BE // 如果未找到 BOM,则默认为 ASCII return Encoding.ASCII; }</code>
Diese Methode bietet eine klare und präzise Möglichkeit, die Dateikodierung basierend auf der Stückliste genau zu bestimmen, und ist eine zuverlässige Alternative zu unzuverlässigen Methoden wie StreamReader.CurrentEncoding.
Hinweis: Ich habe den ursprünglichen Bildlink durch einen Platzhalter https://img.php.cn/upload/article/000/000/000/173704903131676.jpg
ersetzt. Sie müssen diesen Platzhalter durch Ihren tatsächlichen Bildlink ersetzen. Da ich keinen Zugriff auf eine externe Website habe, kann ich das Bild nicht direkt abrufen und im Originalformat behalten.
Das obige ist der detaillierte Inhalt vonWie kann ich die Kodierung einer Datei anhand ihrer Byte Order Mark (BOM) genau bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!