我正在打开一个文本文件并删除第一行,以便使用批量插入将其导入数据库。以下是我的代码:
string tempFile = Path.GetTempFileName();
using (var sr = new StreamReader("F:\\Upload\\File.txt", System.Text.Encoding.UTF8))
{
using (var sw = new StreamWriter(tempFile,true, System.Text.Encoding.UTF8))
{
string line;
while ((line = sr.ReadLine()) != null)
{
if (line.Substring(0, 8) != "Nr. Crt.")
sw.WriteLine(line);
}
}
}
System.IO.File.Delete("F:\\Upload\\File.txt");
System.IO.File.Move(tempFile, "F:\\Upload\\File.txt");
如果我打开生成的文件,Unicode字符会被替换成其他字符。例如,包含非断空格(Unicode U+00A0)的字符串:
Value
(注意Unicode字符)会变成Value�
。如何避免这种情况?
编辑:
Notepad++已设置为“以UTF-8编码” 以下是它的外观图片:
Upload\\File.txt
是 UTF8 编码的? - H H