2011-07-26 120 views
7

如果我們不提及解碼他們將使用什麼解碼?我想這不是System.Text.Encoding.Default。事情運作良好,如果我明顯System.Text.Encoding.Default但事情出錯時,我生活空。什麼是System.IO.File.ReadAllText默認編碼

所以這不能很好地工作

Dim b = System.IO.File.ReadAllText("test.txt") 
System.IO.File.WriteAllText("test4.txt", b) 

但效果很好

Dim b = System.IO.File.ReadAllText("test.txt", System.Text.Encoding.Default) 
System.IO.File.WriteAllText("test4.txt", b, System.Text.Encoding.Default) 

如果我們沒有指定的編碼將VB.NET揣摩從文本文件的編碼?

什麼是System.Text.Encoding.Default

這是系統默認值。我的系統默認是什麼,我該如何改變它?

如何知道文本文件中使用的編碼?

如果我創建一個新的文本文件,並用scite打開它,我看到編碼是代碼頁屬性。什麼是代碼頁屬性?

回答

3

Look here「此方法嘗試根據字節順序標記的存在自動檢測文件的編碼。可以檢測編碼格式UTF-8和UTF-32(包括big-endian和little-endian) 「。

+0

是這與encoding.default相同? –

+1

不,這使用操作系統的當前ansi代碼頁看看這裏:http://msdn.microsoft.com/en-us/library/system.text.encoding.default.aspx –

+0

默認似乎是舊的,而不是真的用過/可行。看看http://en.wikipedia.org/wiki/Windows_code_page –