我有一個內容「測試」的文本文件(UTF-8編碼)。我嘗試從該文件獲取字節數組並轉換爲字符串,但它包含一個奇怪的字符。我使用下面的代碼:爲什麼File.ReadAllBytes結果與使用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
不同於contents2
- 爲什麼?
如果你檢查第一個字符'(int)contents1 [0]',你會看到這個char是BOM字符。更多信息:http://stackoverflow.com/questions/6784799/what-is-this-char-65279 – kpull1 2014-09-29 14:37:08