我有一段ajax代码(典型的ajax客户端代码),需要在url中传递中文参数:
function show() {
var desc = document.search.desc.value; //desc的值有可能是中文
var url = "deal.jsp?desc=" + desc;
// alert(url);
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("post", url, true);
req.onreadystatechange = callback;
req.send(null);
}
function callback() {
if (req.readyState == 4) {
if (req.status == 200) {
// deal with the response text
// alert(req.responseText);
eval(req.responseText);
} else {
// 如果失败,刷新页面
alert(req.status + "\r\n" +req.responseText);
window.location = location;
}
}
}
在服务器端采用如下方式处理乱码:
desc = new String(desc.getBytes("ISO-8859-1"), "UTF-8"); // 会出现乱码
结果是:(1)网站部署在windows服务器上时,Chrome和FireFox会出现乱码,IE正常;
(2)网站部署在linux服务器上时,IE会出现乱码,Chrome和FireFox正常。
解决方案
No.1 在Javascript客户端,对中文参数进行两次encodeURI操作:
desc = encodeURI(desc);
desc = encodeURI(desc); // 两次encodeURI转换
No.2 在服务器端,再进行解码:
desc = java.net.URIDecoder.decode(desc, "UTF-8");
经过这两步,无论window还是Linux做服务器,无论IE,Chrome还是FireFox,均无乱码,问题解决。
分享到:
相关推荐
JavaScript获取Url中的参数(解决中文乱码) 可以点击更改URL按钮 修改url中的参数
javascript通过url向jsp页面传递中文参数乱码,一直都是从事jsp开发者比较烦心的是,于是本文介绍了一些解决方法,感兴趣的朋友可以了解下
网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到的是乱码问题的解决 网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到...
解决javascript发送和接受中文乱码。只需照做就行了。很简单。
本文给大家分享一段给url参数加密解密的javascript代码,非常的好用,有需要的小伙伴直接拿走吧
解决思路:进行Base64前先进行URL编码,在进行URL编码的时候,注意设置不需要SpaceAsPlus选项。 javascript代码: let decodedData = window.atob(JSONStr); let decodedData1 = decodeURIComponent(decodedData)...
javaScript encodeURI中文乱码
设置或获取对象指定的文件名或路径。 ...设置或获取 href 属性中在井号“#”后面的分段。 设置或获取 location 或 URL 的 hostname 和 port 号码。 设置或获取 href 属性中跟在问号后面的部分。
Java读取TXT文本文件乱码解决方案.doc
javascript获取url上的参数
从A页面通过url传参到B页面时,解析url参数可以用下面两种方法: 方法一:正则分析法 代码如下: function getQueryString(name) { var reg = new RegExp(“(^|&)” + name + “=([^&]*)(&|$)”, “i”); var r = ...
做项目的时候用到了JavaScript获取URL参数,所以自己写了一个比较通用的方法,里面用到了JSON.js,附件里面有。
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,
获取url中参数,javascript,你值得拥有
多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...
使用 JavaScript 文件特性,给 JavaScript 传递参数,原创资源,请各位朋友积极点评,谢谢!
今天终于解决了AJAX的中文乱码问题,写篇文章来帮助一下有同样问题的朋友们。我的开发环境:XP, eclipse,使用GB18030编码。 当遇到这个问题时,到网上去查了好多文章,提到几种解决方案,如:全站UTF-8编码;请求头...
主要介绍了JavaScript函数参数使用带参数名的方式赋值传入的方法,实例分析了javascript函数传递参数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
利用JavaScript通过URL方式向后台代码传值是一种经常用到的手段,但在传递汉字时经常会出现字符不全或变成乱码的问题,其原因是由于客户端IE浏览器的编码方式为GB2312(简体中文版WINDOWS的默认设置),而后台的C#...