Ich habe eine Textdatei (UTF-8-Codierung) mit Inhalt "test". Ich versuche, das Byte-Array aus dieser Datei zu erhalten und in String zu konvertieren, aber es enthält ein seltsames Zeichen. Ich verwende den folgenden Code ein:Warum ist das File.ReadAllBytes-Ergebnis anders als bei der Verwendung von File.ReadAllText?
var path = @"C:\Users\Tester\Desktop\test\test.txt"; // UTF-8
var bytes = File.ReadAllBytes(path);
var contents1 = Encoding.UTF8.GetString(bytes);
var contents2 = File.ReadAllText(path);
Console.WriteLine(contents1); // result is "?test"
Console.WriteLine(contents2); // result is "test"
conents1
ist anders als contents2
- warum?
Wenn Sie das erste Zeichen '(int) contents1 [0]' überprüfen, sehen Sie, dass dieses Zeichen das BOM-Zeichen ist. Weitere Informationen: http://stackoverflow.com/questions/6784799/what-is-this-char-65279 – kpull1