发布网友
共1个回答
热心网友
配置文件web.config中,在节中加上整个网站的编码方式,如<globalization fileEncoding="GB2312" requestEncoding="GB2312" responseEncoding="GB2312"/>。这样参数就以gb2312的中文编码方式传输,而非默认的utf-8。
在传参时,先进行编码再传输。例如,将字符串mm编码为:string mm=Server.URLEncode(你);然后使用Response.Redirect(index.aspx?mm=+mm);来将编码后的字符串传入接收页。在接收页解码时,使用string mm = Server.URLDecode(Requext.querystring(mm));来还原字符串。
JavaScript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。
escape()方法采用ISO Latin字符集对指定的字符串进行编码。所有空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码,如空格符对应%20。不会被此方法编码的字符有:@ * / +
encodeURI()方法将URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符有:@ # $& * ( ) = : / ; ? + 'encodeURIComponent()方法将URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,此方法对更多字符进行编码,包括/等字符。若字符串包含URI部分,不可使用此方法编码,否则URL将显示错误。不会被此方法编码的字符有:* ( ) '。
对于中文字符串,若不希望编码格式转换为UTF-8(即页面和目标页面编码一致),使用escape即可。若页面编码为GB2312或其它,接收页面为UTF-8编码,应使用encodeURI或encodeURIComponent。
注意,encodeURI/encodeURIComponent在JavaScript 1.5之后引入,而escape在1.0版本已有。传参时使用encodeURI("url参数")进行编码。接收时,使用decodeURI("接收到的值")解码。