javascript解决URL传值时乱码的方法
来源: 阅读:663 次 日期:2015-03-18 11:53:53
温馨提示: 小编为您整理了“javascript解决URL传值时乱码的方法”,方便广大网友查阅!

URL中出现空格,等字符会乱码,这个是见到的一个比较不错的处理方式。调用时,把要传递的参数通过这个js方法转化一下就可以转化为%xx组成的一系列字符 服务端正常获取 有兴趣的可以试一下 ,具体代码如下:

function encodeURL(str){

var s0, i, s, u;

s0 = ""; // encoded str

for (i = 0; i < str.length; i++){ // scan the source

s = str.charAt(i);

u = str.charCodeAt(i); // get unicode of the char

if (s == " "){s0 += "+";} // SP should be converted to "+"

else {

if ( u == 0x2a || u == 0x2d || u == 0x2e || u == 0x5f || ((u >= 0x30) && (u <= 0x39)) || ((u >= 0x41) && (u <= 0x5a)) || ((u >= 0x61) && (u <= 0x7a))){ // check for escape

s0 = s0 + s; // don't escape

}

else { // escape

if ((u >= 0x0) && (u <= 0x7f)){ // single byte format

s = "0"+u.toString(16);

s0 += "%"+ s.substr(s.length-2);

}

else if (u > 0x1fffff){ // quaternary byte format (extended)

s0 += "%" + (oxf0 + ((u & 0x1c0000) >> 18)).toString(16);

s0 += "%" + (0x80 + ((u & 0x3f000) >> 12)).toString(16);

s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);

s0 += "%" + (0x80 + (u & 0x3f)).toString(16);

}

else if (u > 0x7ff){ // triple byte format

s0 += "%" + (0xe0 + ((u & 0xf000) >> 12)).toString(16);

s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);

s0 += "%" + (0x80 + (u & 0x3f)).toString(16);

}

else { // double byte format

s0 += "%" + (0xc0 + ((u & 0x7c0) >> 6)).toString(16);

s0 += "%" + (0x80 + (u & 0x3f)).toString(16);

}

}

}

}

return s0;

}

更多信息请查看IT技术专栏

更多信息请查看脚本栏目
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map