C# 用C语言编写csv文件中的法语字符#
我有一个dbf文件,其中包含C# 用C语言编写csv文件中的法语字符#,c#,encoding,C#,Encoding,我有一个dbf文件,其中包含MONTRÉAL。我必须将这个dbf文件转换成csv文件 为此,我使用Microsoft Visual FoxPro驱动程序读取此dbf文件,然后将每行转换为逗号分隔的,然后将所有行写入名为“ASD.csv”的文件 但在CSV文件中,MONTRÉAL显示为MONTRÉAL,即代替ea出现一个?字符。我尝试在将行写入csv文件时使用UTF8编码,但即使这样也不起作用 请提供帮助。几年前我的实现使用了: var writer = new StreamWriter(file
MONTRÉAL
。我必须将这个dbf文件转换成csv文件
为此,我使用Microsoft Visual FoxPro驱动程序读取此dbf文件,然后将每行转换为逗号分隔的,然后将所有行写入名为“ASD.csv”的文件
但在CSV文件中,MONTRÉAL
显示为MONTRÉAL
,即代替ea
出现一个?
字符。我尝试在将行写入csv文件时使用UTF8编码,但即使这样也不起作用
请提供帮助。几年前我的实现使用了:
var writer = new StreamWriter(fileStream, Encoding.Unicode);
writer.Write(csvContent.ToCharArray());
我想这应该行得通,因为我们的应用程序支持相当多的语言,包括日语
编辑:
使用记事本、记事本++、Excel、图书馆办公软件为蒙特勒尔工作
这是一个很好的解释 我建议您使用UTF8编码,如下所示:
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记事本成功打开文件。您必须使用特定的编码。法语为“iso-8859-1”或“windows-1252”
您正在读取的文件的编码是什么?您正在以这种编码读取它吗?您使用什么应用程序来查看CSV文件?它使用什么编码?CSV文件可能是正确的,但查看器使用了错误的编码。(没有真正的CSV标准,也没有CSV文件的首选编码,并且该文件也不记录使用的编码。这必须由生产和消费应用程序单独商定。)我正在使用记事本++查看CSV文件。您在记事本++中选择了什么编码(菜单编码)?这和你出口时用的是一样的吗?我用了泰尔在中给出的答案,它成功了。谢谢。那很有用!
Encoding.GetEncoding("iso-8859-1")