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# - 赋予委托(delegate)属性的优雅方式

c# - 如何模拟来自控制台的用户输入?

c# - 在 SQL to LINQ 中使用 SP 时从 SQL Server 检索错误消息

c# - ASP.NET core 在 IIS 中运行启动错误日志记录

.net - 检测何时安装驱动器或更改状态(WPF 的 WM_DEVICECHANGE)?

c# - 按钮 PlayerPrefs

.net - 拆分多页 TIFF 图像 - 使用 .NET 和 IronPython

.htaccess - 使用正则表达式的 htaccess 301 重定向

asp.net - 将 default.aspx 重定向到根虚拟目录

vbscript - 你能用 Microsoft.XMLHTTP 对象检测到 301 重定向吗?