以简单的形式.NET将字符串转换为uri

时间:2011-03-10 18:16:38

标签: c# .net

我想转换例如:

Aión 到URI字符串,因此使用System.Uri.EscapeDataString这会转换为 Ai%C3%B3n ,但我希望艾%F3N

如何翻译角色,我想要的方式?

我使用的是常规winform应用程序而不是ASP页面

2 个答案:

答案 0 :(得分:3)

Server.HTMLEncode

这会给你

"Aión"

答案 1 :(得分:1)

感谢@Paul McCowan和该链接的最后一个答案,我提出了一个能够实现我想要的功能:

public static string ConvertToUri(string uri_string)
        {
            StringBuilder Encoded = new StringBuilder();
            foreach (char Ch in uri_string)
            {
                if (Uri.EscapeUriString(Ch.ToString()) != Ch.ToString())
                {
                    Encoded.Append("%");
                    Encoded.AppendFormat("{0:x2}", Encoding.Unicode.GetBytes(Ch.ToString())[0]);
                }
                else
                {
                    Encoded.Append(Ch);
                }
            }
            return Encoded.ToString();
        }