【问题标题】:French characters display issue using UTF8 encoding使用 UTF8 编码的法语字符显示问题
【发布时间】:2015-07-11 10:51:18
【问题描述】:

我正在编写一个 Web 抓取应用程序,该应用程序使用 UTF8 编码将数据动态写入 CSV 文件。法语字符无法正确显示。如果我将生成的 CSV 输出保存为 CSV 文件,然后首先在记事本中打开 CSV 文件而不进行任何更改,然后当我在 Excel 中重新打开文件时,字符会正确显示。手动干预首先使用记事本保存不是此动态解决方案的选项。下面是示例代码。任何想法如何解决这一问题?谢谢。

public System.IO.Stream dsCSV(string url, string langID)
    {
        System.Text.StringBuilder sb1 = new System.Text.StringBuilder();
        if (langID.Equals(Fr))
        {
            Thread.CurrentThread.CurrentCulture = cultureFr;
            Thread.CurrentThread.CurrentUICulture = cultureFr;
            processCSVData(sb1, url);
        }
        else
        {
            Thread.CurrentThread.CurrentCulture = cultureEn;
            Thread.CurrentThread.CurrentUICulture = cultureEn;
            processCSVData(sb1, url);
        }
        byte[] resultBytes = Encoding.UTF8.GetBytes(sb1.ToString());
        return new MemoryStream(resultBytes);
    }

    public System.Text.StringBuilder processCSVData(System.Text.StringBuilder sb1, string url)
    {

            sb1.Append("Sociétés par portefeuille ministériel");
            sb1.Append(",");
            sb1.Append("Actif total");
            sb1.Append(",");
            sb1.Append("Passif à court terme");
            sb1.Append(",");
            sb1.Append("Passif à long terme");
            sb1.Append(",");
            sb1.Append("Avoir");
            sb1.Append(",");
            sb1.Append("Emploi");
            sb1.Append("\n");


        WebOperationContext.Current.OutgoingResponse.ContentType = "text/csv";
        WebOperationContext.Current.OutgoingResponse.Headers.Add("content-disposition", "attachment; filename=" + Resources.CcSe.filename + ".csv");
        return sb1;
    }

【问题讨论】:

  • 这是什么,Java?只是猜测......
  • 那肯定不是 Java。可能是C#。 @Raj 修复你的标签。

标签: c# csv utf-8


【解决方案1】:

Excel 版本(2013 年之前)需要在 UTF-8 文件的开头使用 BOM 来识别编码。记事本会将 BOM 添加到您的文件中,这就是为什么您会看到它已修改的文件正在被 Excel 打开。

将字节序列0xEF 0xBB 0xBF 添加到您正在生成的 CSV 文件的开头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 2014-01-18
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多