Asp.net 使用.csv和excel进行字符编码

Asp.net 使用.csv和excel进行字符编码,asp.net,Asp.net,我的问题是在WPF数据网格中显示像“ä”和“ö”这样的欧洲字符。数据从.csv加载。我正在使用.NETFramework4.0 Filepath在末尾包含.csv字符。CSV文件由以下代码生成并打开 public static void GenerateCsvTemplate(bool overwrite) { try { if (overwrite) { if (!F

我的问题是在WPF数据网格中显示像“ä”和“ö”这样的欧洲字符。数据从.csv加载。我正在使用.NETFramework4.0

Filepath在末尾包含.csv字符。CSV文件由以下代码生成并打开

    public static void GenerateCsvTemplate(bool overwrite)
    {
        try
        {
            if (overwrite)
            {
                if (!File.Exists(folderPath))
                {
                    Directory.CreateDirectory(folderPath);
                }

                string delimiter = Settings.Default.SplitValue.ToString();
                string content = "a;b;c;d;f";
                File.WriteAllText(filePath, content,UTF8Encoding.UTF8);
            }
            Process.Start(filePath);
        }
        catch (Exception ex)
        {
            logger.Error(ex.Message);
        }
   }
以UTF-8编码创建文件不会改变我的数据网格上的欧洲字符的输出。根据我的理解,默认编码应该是WPF中的UTF-8。用户修改模板并将其保存在excel的.csv中。当它们输入欧洲字符时,它们在读取.csv文件的datagrid中不会正确显示

下面是我读取.csv文件时的代码:

using (var reader = new StreamReader(File.OpenRead(FileHelper.filePath), UTF8Encoding.UTF8)) 
{
     //Read file and populate objects
}

我想我遗漏了一些东西。

Excel(2007及更多)需要UTF-8文件的BOM头。否则它会将文件视为ANSI(可能是ISO-8859-1)。net中的字符串是utf-16,因此这取决于在将utf-8数据绑定到datagrid之前如何将其移动到该字符串中?显示一些“读取文件并填充对象”代码,我相信有人会看到您的错误。@jsobo绑定之前没有做任何特殊的操作。我正在读取文件的每一行,并在每一行上填充对象数据。填充对象后设置断点。“本地人”窗口中的文本是否正确?@jsobo欧洲字符已显示为”�" 从流读取时。这表明我的问题是.csv生成。