我面临一个问题,同时导出日本文本的CSV格式。垃圾字符正在被导出,而不是原来的日语文本。我使用.NET MVC FileStreamResult导出Csv文件中的记录,并使用编码格式作为UTF8 (我还使用了其他一些编码格式,但没有运气)。我调试了我的代码,能够从内存流转换字符串,反之亦然,并且能够看到原始的日语文本被导出。导出完成后,我打开CSV文件,但只能看到垃圾字符而不是预期的文本。如果我在NotePad 中打开CSV文件(在记事本中打开csv文件不是我的要求。我指的是记事本,只是为了验证我是否能够看到日语翻译的语言),然后我可以看到预期的日文文本。如果有人能帮我找出这个问题的根本原因并提供一个解决方案,那将是非常有帮助的。
例如。将æ±äº¬éƒ½å“å·åŒºå¤§å´Ž编写为東京都品川区大崎
注意:如果我使用Linux、Linux打开示例.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;
}发布于 2015-08-26 14:53:37
听起来好像您还没有在试图打开csv的机器上安装MS Office语言包。
https://stackoverflow.com/questions/32229874
复制相似问题