// 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