writing French character in csv files in C#
我有一个dbf文件,其中
为此,我使用Microsoft Visual FoxPro驱动程序读取此dbf文件,然后将每行转换为逗号分隔,然后将所有行写入名为"asd.csv"的文件。
但在csv文件中,
请帮忙。
您必须使用特定的编码。法语是"ISO-8859-1"或"Windows-1252"。
1 | Encoding.GetEncoding("iso-8859-1") |
我建议您使用这样的utf8编码:
1 2 3 4 5 6 | using (StreamWriter writer = new StreamWriter("asd.csv", false, Encoding.UTF8)) { writer.WriteLine("Id;City"); writer.WriteLine("1;Montréal"); writer.WriteLine("2;Québec"); } |
这将在csv的开头添加一个bom(字节顺序标记),然后您可以直接使用Excel打开文件,甚至可以成功使用标准的Windows记事本打开文件。
几年前我的实现使用了:
1 2 | var writer = new StreamWriter(fileStream, Encoding.Unicode); writer.Write(csvContent.ToCharArray()); |
我想应该可以,因为我们的应用程序中支持很多语言,包括日语。
编辑:与记事本、记事本++、Excel、libreoffice一起为Montr_al工作…
并且很好地解释了utf8、unicode和其他编码的区别。