我需要对可能包含 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 的不同部分进行编码,这样协议(protocol)就不会被编码。
最佳答案
你需要看看RFC 3490其中详细说明了如何正确编码国际域名——这也是为什么当你只编码域部分时它只适用于 Chrome)
关于c# - 301 使用 unicode 字符重定向 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5015678/