Asp.net web api 从asp.net webAPI返回包含非拉丁字符的文件

Asp.net web api 从asp.net webAPI返回包含非拉丁字符的文件,asp.net-web-api,encoding,httpresponsemessage,Asp.net Web Api,Encoding,Httpresponsemessage,HttpResponseMessage从webApi返回带有乱码字符的文件。 我尝试在标题上设置编码,但没有帮助 var-dataBytes=File.ReadAllBytes(路径); 字符串fileName=Path.GetFileName(Path); var数据流=新的内存流(数据字节); HttpResponseMessage HttpResponseMessage=新的HttpResponseMessage(HttpStatusCode.OK); httpResponseMessag

HttpResponseMessage从webApi返回带有乱码字符的文件。 我尝试在标题上设置编码,但没有帮助

var-dataBytes=File.ReadAllBytes(路径);
字符串fileName=Path.GetFileName(Path);
var数据流=新的内存流(数据字节);
HttpResponseMessage HttpResponseMessage=新的HttpResponseMessage(HttpStatusCode.OK);
httpResponseMessage.Content=新的StreamContent(数据流);
httpResponseMessage.Content.Headers.ContentDisposition=新系统.Net.Http.Headers.ContentDispositionHeaderValue(“附件”);
httpResponseMessage.Content.Headers.ContentDisposition.FileName=文件名;
httpResponseMessage.Content.Headers.ContentType=新系统.Net.Http.Headers.MediaTypeHeaderValue(“应用程序/八位字节流”);
httpResponseMessage.Content.Headers.Add(“访问控制公开标题”、“内容处置”);
//httpResponseMessage.Content.Headers.Add(“内容传输编码”,“utf-8”);
//httpResponseMessage.Content.Headers.Add(“charset”,Encoding.ASCII.ToString());
//httpResponseMessage.Content.Headers.Add(“字符集”、“utf-8”);
//httpResponseMessage.Content.Headers.ContentEncoding.Add(“gzip”);
httpResponseMessage.Content.Headers.ContentEncoding.Add(“utf-8”);
返回httpResponseMessage;
所有被注释掉的行都经过了尝试,没有解决问题


谢谢。

如果您返回一个二进制文件,它是服务器上该文件的直接副本,那么您设置的编码并不重要。该文件应具有与原始文件相同的编码。不管怎样,您是否看到结果文件确实与您发送的原始文件不同?如果您返回一个二进制文件,它是服务器上文件的直接副本,则无论您设置了什么编码。该文件应具有与原始文件相同的编码。无论如何,您是否看到结果文件确实与您发送的原始文件不同?