我需要对可能包含Unicode字符的URL进行301重定向。
HttpUtility.UrlEncode不能满足我的需求,因为如果我对整个URL进行编码,它将对任何':'或'/'进行编码
HttpUtility.UrlEncode("http://www.हिन्दी.com") = http%3a%2f%2fwww.%e0%a4%b9%e0%a4%bf%e0%a4%a8%e0%a5%8d%e0%a4%a6%e0%a5%80.com
(另:http://www.%e0%a4%b9%e0%a4%bf%e0%a4%a8%e0%a5%8d%e0%a4%a6%e0%a5%80.com在firefox或IE中似乎不起作用,但在Chrome中有效)
我只能想到的另一件事是对URL的不同部分进行编码,以便不对协议进行编码。
最佳答案
您需要查看RFC 3490,其中详细说明了如何正确编码国际域名-这也是为什么当您仅对域名部分进行编码时,它仅适用于Chrome)
关于c# - 301使用Unicode字符重定向-C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5015678/