Url Unicode字符编码

时间:2011-09-07 13:32:36

标签: c# unicode encoding uri

如何编码包含Unicode的网址?我想将它传递给命令行实用程序,我需要先对其进行编码。

示例:http://zh.wikipedia.org/wiki/白雜訊

变为http://zh.wikipedia.org/wiki/%E7%99%BD%E9%9B%9C%E8%A8%8A

4 个答案:

答案 0 :(得分:7)

您可以在System.Web程序集中使用HttpUtility.UrlPathEncode方法(需要完整的.NET Framework 4配置文件):

var encoded = HttpUtility.UrlPathEncode("http://zh.wikipedia.org/wiki/白雜訊");

答案 1 :(得分:5)

根据MSDN,您不能再使用UrlPathEncode。

所以,现在正确的做法是,

var urlString = Uri.EscapeUriString("http://zh.wikipedia.org/wiki/白雜訊");

答案 2 :(得分:0)

Server.UrlEncode(s);

.NET字符串本身就是Unicode字符串(UTF-8编码,具体而言)所以你只需要调用HttpServerUtility.UrlEncode(尽管所谓的“内在”服务器属性在asp的大多数情况下都可用) .net你可能想要这样做。)

答案 3 :(得分:0)

我有土耳其字符问题。<a href="/@Html.Raw(string)"解决了问题