在Ajax程序中,在URL拼接时带有中文参数是不可避免的事情,如
var url='/YourAppName/CreateTodo.do?name='+name;其中name是来自inputbox的取值,它可能带有中文。
如果让Ajax直接提交这样的URL,那么后台用request.getParameter("name");这样的方法得到的name就会含有乱码。
解决之道是先对URL进行两次编码,用的是JavaScript的encodeURI函数,具体代码如下:
var url=encodeURI('/YourAppName/CreateTodo.do?name='+name);
url=encodeURI(url);
在后台的Servlet或是Action中,可以这样得到正确的文字:
Sting name=java.net.URLDecoder.decode(request.getParameter("name"),"utf-8");
就是这样,值得注意的是,中文环境的机器用容器跑WebApp也许不需要这样的处理,但其它环境如日文,英文就非此不可了,因此在编码时尽可能这样处理一下,如果安装后出现问题就会造成慌乱了。我们在编写Web程序时,最好让文件编码,数据库编码,输出编码,网页编码保持一致,这样能省去很多麻烦。
以上操作的具体原理请见:
http://yiminghe.javaeye.com/blog/243812
http://yiminghe.javaeye.com/blog/247837
相关推荐
ajax提交时,后台接收的参数出现中文乱码的解决方法,
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Object.success,但后台能够返回数据,原代码如下: var source=[]; $.ajax({ ...
解决ajax异步提交后台取值中文乱码问题,提供两种解决方法
jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现
Ajax中文乱码问题解决方案
主要解决在ajax中中文参数传递过程中,服务器接收到中文乱码的问题
利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法。
ajax 前台 js 调用后台 方法,很好很强大
Ajax程序设计入门Ajax程序设计入门Ajax程序设计入门Ajax程序设计入门Ajax程序设计入门
基于ajax方式的跨域请求jsonp的前后台代码
java认证_Ajax中文乱码问题及解决方法.doc
mysql实现学籍管理数据库,AJAX程序实现对服务器端详细学籍信息提取结果的显示
Asp.net中JQuery、ajax调用后台方法总结
如何在Thymeleaf中实现ajax请求url的可靠构造
1.情况描述:ajax发送成功,后台也成功响应请求,并返回了json数据,通过chrome监听请求也可以看到响应的json数据,但是就是不进success方法,反而跑到error方法中了 前端: $.ajax({ type : get, data : {'dbId'...
这部分内容不需要读者有任何的客户端开发知识,只要在Visual Stuio中轻松拖放即可实现强大的客户端Ajax功能,例如局部页面更新、异步回送、拖放、动画等,非常适合为现有的ASP.NET 2.0应用程序添加少量的Ajax特性,...
在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助
解决从前台到后台数据传输的详细代码及注释
自己写的一个ajax+jsp+servlet的例子,中文问题已解决,拿出来分享,希望对你有所帮助。
ajax解析json型的数据,2中方法,有列子,也有注释,很详细。新手可以学习一下。主要就是功能代码。