Asp.net 在IIS中承载时IDN字符已断开的位置标头

Asp.net 在IIS中承载时IDN字符已断开的位置标头,asp.net,iis,asp.net-web-api,Asp.net,Iis,Asp.net Web Api,对于API中的一些POST调用,我们将响应位置头指向创建的资源 位置标头可以包含带有IDN字符的URL(例如http://réresponse.com) 在IIS中托管API时,IIS将位置头更改为http://résponse.com/ 那里的编码肯定有问题。 当我们将API设置为自托管时,不会触及位置标头。 IIS中是否缺少导致此行为的设置? 内容类型字符集设置为utf-8,但我想这已经是IIS中的默认值了 IIS的版本是8.5+ 我们使用Web API,但使用NancyFx会导致相同的行

对于API中的一些POST调用,我们将响应位置头指向创建的资源

位置标头可以包含带有IDN字符的URL(例如
http://réresponse.com

在IIS中托管API时,IIS将位置头更改为
http://résponse.com/

那里的编码肯定有问题。 当我们将API设置为自托管时,不会触及位置标头。 IIS中是否缺少导致此行为的设置? 内容类型字符集设置为utf-8,但我想这已经是IIS中的默认值了

IIS的版本是8.5+
我们使用Web API,但使用NancyFx会导致相同的行为。

我现在只对特殊字符进行了少量编码,
但是我仍然不明白为什么IIS会更改头,而自托管解决方案不会更改头

您可以尝试将头添加到该站点的HTTP响应头列表中。如果没有指定,它将以用户代理请求的任何形式交付,这可能就是您看到ISO-8859-1的原因


“属性”=>“HTTP头”=>“文件类型…”=>“新类型…”。为每个扩展分别输入要映射的扩展;IIS用户可能希望映射.htm、.html、,。。。然后,对于内容类型,添加“text/html;charset=utf-8”(不带引号;将所需的字符集替换为utf-8;

在IIS的.Net全球化功能中设置编码和区域性配置(我假设您正在托管基于asp.Net的API?)