日期:2014-05-16 浏览次数:20413 次
Javascript的URL编码问题。 Javascript的常用的编码方式: encodeURIComponent(stringvalue)和decodeURIComponent(stringvalue) encodeURI(stringvalue)和decodeURI(stringvalue) escape(stringvalue) 和unescape(stringvalue) 现在escape(stringvalue) 和unescape(stringvalue)已经从ECMAScript v3 已从标准中删除了 ,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。 ? Java的编码解码: URLEncoder.encode(stringvalue,"UTF-8") 对应 encodeURIComponent(stringvalue) Java解码 URLDecoder.decode(stringvalue,"UTF-8") 对应 decodeURIComponent(stringvalue) ? 淘宝用的框架是WEBX,WebX中会把所有的参数按配置进行一次解码,淘宝大多应用系统都是GBK的编码,所以会存在Javascript编码后传给服务端拿到的是错误的编码。原因: JavascriptAjax请求时:encodeURIComponent()后UTF-8编码WebX以GBK编码解码出错。解决:encodeURIComponent(encodeURIComponent(stringvalue))两次编码后传送到服务端,WEBX解码后是正常的UTF-8编码的字符串,在用URLDecoder.decode(stringvalue,"UTF-8")进行一次解码得到最后正确编码的汉字。这个在WEB旺旺和阿里云的旺旺服务器的聊天记录的查看是这样的做的。 原来还有很多遗留的系统的前端JS