2014-01-07 82 views
0

如何通過代碼更改文本文件編碼?我使用此代碼實際創建的文件本身,但我怎麼能更改編碼(改爲UTF-8 W/O BOM)更改文本文件編碼

string path = @"E:\Test\Example.txt"; 
if (!File.Exists(path)) 
{ 
    File.Create(path); 
} 
+4

的文件沒有你寫進去有一個編碼,文本 – okrumnow

+0

是否有方法通過代碼更改文本的編碼? – MasterOfStupidQuestions

回答

3

你可以做這樣的事情,但我不知道這使得真正意義,因爲它似乎你在你的文件中沒有的內容...

如果你有一個內容,通過內容替換string.Empty

File.WriteAllText(path, string.Empty, Encoding.GetEncoding(<someEncodingCode>)); 

編輯:

File.WriteAllText(path, string.Empty, new UTF8Encoding(false)); 
+0

您是否知道UTF8的編碼代碼(無BOM)? – MasterOfStupidQuestions

+0

@ user2954053請參閱編輯 –

0

首先,除少數基地(例如,一個Unicode BOM,XML的編碼規則),您將需要某種形式的元數據來告訴您當前的編碼。雖然有些工具會猜測它們不可靠(例如,ISO/IEC 8859-1中的各種拉丁編碼沒有任何區分它們的方法)。

一旦你知道輸入編碼,合格Encoding一個實例,用編碼的名稱創建的,到StreamReader構造,創造StreamWriter與所需的輸出編碼的實例,然後從一個到另一個泵串。

(如果您知道這些文件是不是兩個大:一次過與File.ReadAllTetxt讀到的一切,並與File.WriteAllText,內搭Encoding參數寫

+0

數據將被手動剪切/粘貼到文本文件中,只是想讓它自動創建 - 我現在看到文本是編碼而不是文件,所以現在你的答案很有意義。 – MasterOfStupidQuestions