簡體   English   中英

法語字符使用UTF8編碼顯示問題

[英]French characters display issue using UTF8 encoding

我正在編寫一個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;
    }

Excel版本(2013年之前)要求UTF-8文件開頭的BOM才能識別編碼。 記事本將BOM添加到文件中,這就是為什么您看到Excel修改了它的文件的原因。

將字節序列0xEF 0xBB 0xBF添加到要生成的CSV文件的開頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM