通过以下两种方式都可以编码和解码
1、
用JS对URL进行编码和解码
JavaScript中有三个可以对字符串编码的函数,分别是:
escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent。
escape()
函数可对字符串进行编码
语法
escape(string)
encodeURI()
函数可把字符串作为
URI
进行编码。
语法
encodeURI(URIstring)
该方法的目的是对
URI
进行完整的编码,因此对以下在
URI
中具有特殊含义的
ASCII
标点符号,encodeURI()
函数是不会进行转义的:;/?:@&=+$,#
encodeURIComponent()
函数
encodeURIComponent()
函数可把字符串作为
URI
组件进行编码。
escape()除了
ASCII
字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI()
用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。
2、用asp.net
对URL进行编码和解码
用System.Web.HttpUtility.UrlEncode编码:
string
tmp1
=
System.Web.HttpUtility.UrlEncode(".net技术",
System.Text.Encoding.GetEncoding("GB2312"));
string
tmp2
=
System.Web.HttpUtility.UrlEncode(".net技术",
System.Text.Encoding.UTF8);
用System.Web.HttpUtility.UrlDecode
或者
Server.UrlEncode
相应的进行解码
参考资料:
URL如何编码与解码
http://www.studyofnet.com/news/167.html
urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%。 urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符