c# - 301 使用 unicode 字符重定向 - C#

标签 c# .net http-status-code-301

我需要对可能包含 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/

相关文章:

c# - 在 C# winform 中下载完成事件后,DownloadFileCompleted 不能立即工作?

.htaccess - 301重定向无SEO损害

asp.net - 如何使用 ASP.NET 通过 DNS 将多个域名 301 重定向到我的主 URL?

由于浏览器缓存,PHP header 301 重定向不起作用

c# - Azure 移动服务登录数据库和 "master"用户时出现错误

c# - 远程服务器返回错误 : (412) The condition specified using HTTP conditional header(s) is not met. 。

c# - 打开 C# Windows 应用程序的新实例

c# - 如何通过网络复制经常使用的文件?

.net - 将 RouteValueDictionary 转换为匿名对象的快速方法?

.net - 私有(private)成员命名约定