.Net Core 3.1 API,Angular 9,应用程序错误标头错误编码

.Net Core 3.1 API,Angular 9,应用程序错误标头错误编码,angular,character-encoding,http-headers,asp.net-core-webapi,Angular,Character Encoding,Http Headers,Asp.net Core Webapi,我在.Net Core 3.1 API中通过以下方式设置应用程序错误头: response.Headers.Add("Application-Error", message); 在浏览器开发人员工具中,消息看起来很棒: 但是,当我从英语中得到这个信息时,民族性格是不好的: if(error instanceof HttpErrorResponse){ const applicationError = error.headers.get('Application-Error'); co

我在.Net Core 3.1 API中通过以下方式设置应用程序错误头:

response.Headers.Add("Application-Error", message);
在浏览器开发人员工具中,消息看起来很棒:

但是,当我从英语中得到这个信息时,民族性格是不好的:

if(error instanceof HttpErrorResponse){
  const applicationError = error.headers.get('Application-Error');
  console.log("msg: ", applicationError)
}

我不知道编码错误是在.Net核心端还是在角度端


你能给我一个提示吗?

我通过邹星提供的链接解决了这个问题

在.Net Core端,我需要将代码修改为:

response.Headers.Add("Application-Error", WebUtility.UrlEncode(message));
let decoded = decodeURIComponent(applicationError).replace(/\+/g," ");
在角度方面,我需要将代码修改为:

response.Headers.Add("Application-Error", WebUtility.UrlEncode(message));
let decoded = decodeURIComponent(applicationError).replace(/\+/g," ");

你使用gzip压缩吗?不,我不使用它。你如何添加它?我无法将消息添加到响应标头,因为HTTP标头不接受非ASCII字符。对于您的情况,请查看