C#使用Encoding.UTF8追加文本
我有以下代码:C#使用Encoding.UTF8追加文本,c#,csv,utf-8,C#,Csv,Utf 8,我有以下代码: using (var sw = new StreamWriter(path + kat + "/" + namec, false, Encoding.UTF8)) { sw.WriteLine(namex + "," + address + "," + web + "," + email + "," + phone + "," + linksx + ","
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
参数访问标记C:\Users\??\Documents\Visual Studio
2015\Projects\visitdenmark\visitdenmark\Form1.cs 193活动
实际上,错误消息是正确的。声称
AppendText
不接受3个参数
但在我看来,没有必要将您的第一种方法与StreamWriter
放在一边。但是为了附加文本,您应该将第二个参数更改为true
using (var sw = new StreamWriter(path + kat + "/" + namec, true, Encoding.UTF8))
{
sw.WriteLine(namex + "," + address + "," + web + "," + email + "," + phone + "," + linksx + "," + transport);
}
我不确定是否能找到您,但是StreamWriter的第二个参数是设置它是否应该追加。您可以只使用相同的代码,但将参数设置为true。@ogomrub ok请告诉我,您将如何附加它,包括Encoding.UTF8?我的意思与@Larsupilami写下的相同。你在文件中得到了一些意想不到的字符,可能是你正在用一个使用不同于UTF8编码的工具打开文件吗?我从网站visitdenmark.dk获得了字符串示例我的名字是Danhostel Rønne,但wehn我将其存储在csv文件中,看起来像Danhostel R¸nne我有一个非常奇怪的问题,当我将其设置为false时,一切正常,它显示的名称类似于“Rønne”,但我不能这样做,因为我需要附加它,所以当我将其设置为true时,它将正确附加,但显示的名称类似于“Rønne”。非常奇怪。但是当我把它设置为true时,我在字符串Ă中得到类似的东西,这对我没有帮助。在这种情况下,很可能你的输入数据已经被屏蔽了。因为这段代码正确地处理了UTF-8。请验证
namex
,address
等的值是否正确格式化。我有一个非常奇怪的问题,当我将其设置为false时,一切正常,它显示的名称类似于“Rønne”,但我不能这样做,因为我需要附加它,因此,当我将其设置为true时,它将正确追加,但显示的名称类似于“Rønne”。非常奇怪。如果您能提供更多关于场景背景的信息,可能会有所帮助。我想是有别的东西在干扰。