// public static string UrlEncode(string str) { StringBuilder sb = new StringBuilder(); byte[] byStr = System.Text.Encoding.UTF8.GetBytes(str); for (int i = 0; i < byStr.Length; i++) { sb.Append(@"%" + Convert.ToString(byStr[i], 16)); } return (sb.ToString()); } public static string UrlEncode2(string str) { StringBuilder sb = new StringBuilder(); byte[] byStr = System.Text.Encoding.UTF8.GetBytes(str); for (int i = 0; i < byStr.Length; i++) { sb.Append(Convert.ToString(byStr[i], 16)); } return (sb.ToString()); } public static string UrlDecode(string str) { char[] cr = str.ToCharArray(); byte[] byStr = new byte[cr.Length/2]; int j = 0; for (int i = 0; i < byStr.Length; i++) { byStr[i] = byte.Parse(cr[j]+""+cr[j+1], System.Globalization.NumberStyles.HexNumber); j=j+2; } str = System.Text.Encoding.UTF8.GetString(byStr); return (str); }
public static string UrlDecode(string str)
其实是没有%情况的Url解码
有%分隔情况下
char[] cr = str.ToCharArray();
就不用这么麻烦了
可以直接写 string[] cr = str.split('%');
更简单....
更多关于c#转换问题,可以看这里:http://hi.baidu.com/xdwu/blog/item/5bc9e9437823871673f05dae.html