2017-04-24 68 views
0

我有這樣的代碼:C#附加文本與Encoding.UTF8

using (var sw = new StreamWriter(path + kat + "/" + namec, false, Encoding.UTF8)) 
          { 
           sw.WriteLine(namex + "," + address + "," + web + "," + email + "," + phone + "," + linksx + "," + transport); 
          } 

我如何可以選擇附加文本,包括Encoding.UTF8?

我嘗試這樣做:

using (StreamWriter sw = File.AppendText(path + kat + "/" + namec, false, Encoding.UTF8)) 

但我得到了這一點:

嚴重性代碼說明項目文件的線路抑制狀態 錯誤CS1501無重載方法 'AppendText通過' 需要3個 參數visitdenmarkÇ :\ Users \ ??? \ Documents \ Visual Studio 2015 \ Projects \ visitdenmark \ visitdenmark \ Form1.cs 193 Active

+0

不知道如果我得到你,但StreamWriter的的第二個參數是設置是否應該追加與否。您可以使用相同的代碼,但將參數設置爲true。 – ogomrub

+0

@ogomrub好的請告訴我,你會如何追加它,包括Encoding.UTF8? – mdieod

+0

我的意思和@Larsupilami寫的一樣。 在文件中出現一些意想不到的字符,可能是因爲您正在使用的編碼不是UTF8的工具打開文件? – ogomrub

回答

0

其實錯誤信息是正確的。聲稱AppendText不需要3個參數。

但在我的選擇中,沒有必要放下你的第一個方法,把StreamWriter放在一邊。但是,爲了文本追加你應該第二個參數更改爲true

using (var sw = new StreamWriter(path + kat + "/" + namec, true, Encoding.UTF8)) 
{ 
    sw.WriteLine(namex + "," + address + "," + web + "," + email + "," + phone + "," + linksx + "," + transport); 
} 
+0

但是當我將它設置爲true時,我在字符串中得到類似這樣的東西Ă它並不幫助我 – mdieod

+0

在這種情況下,很可能您的輸入數據已被嚇跑。因爲這段代碼正確處理UTF-8。 請驗證'namex','地址'等的值是否格式正確。 – Larsupilami

+0

我有一個很奇怪的問題,當我把它設置爲false時,一切都正常,它顯示的名字就像這個「Rønne」,但是我不能這樣做,因爲我需要追加它,所以當我將它設置爲true時,正確附加,但顯示像這樣的名字「Røne」。很奇怪。 – mdieod