我在以CSV格式导出日文文本时遇到问题。正在导出垃圾字符而不是原始日文文本。我使用.NET MVC FileStreamResult导出Csv文件中的记录,并使用编码格式为UTF8 (我还使用了其他一些编码格式,但没有运气)。我调试了我的代码,能够从内存流中转换字符串,反之亦然,能够看到导出的原始日文文本。导出完成后,我打开了CSV文件,但只能看到垃圾字符而不是预期的文本。如果我在NotePad 中打开CSV文件(在记事本中打开csv文件不是我的要求。我只是指记事本以验证我是否能够看到日语翻译语言) ,然后我可以看到预期的日文文本。如果有人请帮我找到这个问题的根本原因并提供解决方案,那将非常有帮助。
实施例。 东京都品川区大崎写成æ±äº¬éƒ½å“å·åŒºå¤§å'Ž
注意:如果我使用LibreOffice Calc,Linux默认gEdit打开示例.CSV文件,我可以看到预期的日文文本正确导出。但问题是使用MS Office打开此csv文件。
请查看以下附加代码 -
Controller/Action to execute while clicking on export to Csv button
================================================================================
[HttpPost]
[ValidateInput(false)]
public FileStreamResult SaveCustomerInfo()
{
return ExportToCsv();
}
================================================================================
private static FileStreamResult ExportToCsv()
{
var exportedData = new StringBuilder();
exportedData
.AppendLine("実行日,口座番号,支店番号,アカウント名,支店名,の/受益秩序,ステートメント日,入力日,お問い合わせ番号, ,Date Range")
.Append(
"CS0001,Demo FName,Demo LName,8/20/2015,\"Demo User Address\",City,Country,08830,0123456789,15813,Absolute from 8/20/2015 to 8/22/2015");
var stream = PrintingHelper.StringToMemoryStream(Encoding.UTF8, exportedData.ToString());
var fileStreamResult = new FileStreamResult(stream, "text/csv")
{
FileDownloadName =
new StringBuilder("TestExportedFileInCsv")
.Append(".csv").ToString()
};
return fileStreamResult;
}
答案 0 :(得分:0)
听起来好像您没有在尝试打开csv的计算机上安装MS Office语言包。