使用ajax的xmlHttp.send()传中文存入数据库出现乱码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ajax的xmlHttp.send()传中文存入数据库出现乱码相关的知识,希望对你有一定的参考价值。
今天测试一个ajax小应用的时候发现ajax POST出去的数据成乱码。我的页面编码前台后台都是GBK,tomcat中设置了过滤器也是使用GBK.
在我不改变现有编码的情况下可以解决乱码问题吗?
我使用的是oracle9i数据库,编码为AL32utf-8
ajax中如果用get提交,把url和参数经过encodeURI编码后再提交,获取时用utf-8编码.
如果用post提交,获取时用utf-8编码,这两种方式都可以解决乱码.
我就是用上面两种方式提交.
如果楼主用(GBK解决了乱码,也请和我分享一下,谢谢!) 参考技术B 你数据库传入参数设置了吗? 使用mysql 吗?
那可以在 Servlet 中指定一下 request 或 responce 的字符集。
AJAX xmlhttp.send 参数
【中文标题】AJAX xmlhttp.send 参数【英文标题】:AJAX xmlhttp.send parameters 【发布时间】:2011-08-16 10:28:28 【问题描述】:我创建了一个 AJAX 函数,当调用它时它会改变特定按钮的颜色。但是,我只设法以静态方式执行此操作,这意味着我将发送的值手动发送到相应的 php 脚本。 我想要的是通过我的 html 正文使用一些参数调用该函数,然后这些参数应该通过 xmlhttp.send 方法传递。我试过了,但它不起作用。 例如,调用下面的函数 ajaxFunction() 可以正常工作(它将传递两个参数 x=0 和 t=1)
$ function ajaxFunction() ... xmlhttp.open("POST","example.php",true);
xmlhttp.onreadystatechange = handleServerResponse;
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send("x=0&t=1");
但是当我尝试使用一些参数调用函数时 (ajaxFunction(0,1) 那么如何将这些值放入 xmlhttp.send 方法中?
有什么想法吗?
还是谢谢。
【问题讨论】:
跟我的问题一模一样!...谢谢! 【参考方案1】:你的意思是:
function ajaxFunction(arg0, arg1)
// ... new + open + setRequestHeader
xmlhttp.send('x=' + encodeURIComponent(arg0) + '&t=' + encodeURIComponent(arg1));
【讨论】:
以上是关于使用ajax的xmlHttp.send()传中文存入数据库出现乱码的主要内容,如果未能解决你的问题,请参考以下文章