文件名中的 FileContentResult 和国际字符
FileContentResult and international characters in the file name
我正在使用此代码return将文件发送给客户端
return new FileContentResult(Encoding.UTF8.GetBytes(sb.ToString()), MimeType)
{
FileDownloadName = String.Format("{0}.csv", fileName)
};
当文件名是 ascii 格式时,它工作文件,但当文件名包含国际字符时,它将 return 动作的名称
例如,如果文件名是 Report 新しいレポート
,则下载的文件是不带任何扩展名的操作名称。
更新
这将在 Chrome 中发生,即在 Firefox 中下载文件但更改了一些字符
火狐:Report2%0d%0a ��しいレポート_2016-03-09_09-20-35.c%0d%0a sv
谁有同样的问题:
var browser = System.Web.HttpContext.Current.Request.Browser.Browser;
if (browser == "Chrome" || browser == "IE" || browser == "InternetExplorer")
{
fileName = HttpUtility.UrlEncode(fileName, Encoding.UTF8);
}
return new FileContentResult(Encoding.UTF8.GetBytes(sb.ToString()), MimeType)
{
FileDownloadName = String.Format("{0}.csv", fileName)
};
我正在使用此代码return将文件发送给客户端
return new FileContentResult(Encoding.UTF8.GetBytes(sb.ToString()), MimeType)
{
FileDownloadName = String.Format("{0}.csv", fileName)
};
当文件名是 ascii 格式时,它工作文件,但当文件名包含国际字符时,它将 return 动作的名称
例如,如果文件名是 Report 新しいレポート
,则下载的文件是不带任何扩展名的操作名称。
更新
这将在 Chrome 中发生,即在 Firefox 中下载文件但更改了一些字符
火狐:Report2%0d%0a ��しいレポート_2016-03-09_09-20-35.c%0d%0a sv
谁有同样的问题:
var browser = System.Web.HttpContext.Current.Request.Browser.Browser;
if (browser == "Chrome" || browser == "IE" || browser == "InternetExplorer")
{
fileName = HttpUtility.UrlEncode(fileName, Encoding.UTF8);
}
return new FileContentResult(Encoding.UTF8.GetBytes(sb.ToString()), MimeType)
{
FileDownloadName = String.Format("{0}.csv", fileName)
};