ajax post 提交数据 乱码问题 请高手指教

我的代码如下<scriptlanguage="javascript">functiontesthasSubmit(){//alert();varto_id=$('TO_I... 我的代码如下<script language="javascript">
function testhasSubmit()
{ //alert();
var to_id=$('TO_ID').value;
var color=$('COLOR').value;
var quiet=$('QUIET').value;
var message=$('MESSAGE').value;
var chat_id = $('CHAT_ID').value;
var to_name = $('TO_NAME').value;
var user_name=$('USER_NAME').value;
var url="input.php";
var postStr="MESSAGE="+message+"&CHAT_ID="+chat_id+"&TO_NAME="+to_name+"&USER_NAME="+user_name+"&QUIET="+quiet+"&TO_ID="+to_id+"&COLOR="+color;
postStr=encodeURI(encodeURI(postStr));

var ajax = false;
//url=encodeURI(url);
// url=encodeURI(url);
if(window.XMLHttpRequest)
{
ajax = new XMLHttpRequest();
if (ajax.overrideMimeType)
{
ajax.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject)
{
try
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{}
}
}
if (!ajax)
{
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
ajax.open("POST", url, true);
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gb2312");

ajax.send(postStr);
ajax.onreadystatechange = function()
{
if (ajax.readyState == 4 && ajax.status == 200)
{

parent.chat_view.location.reload();
}

}

}
</script>
展开
 我来答
冷库软件
2010-06-21 · TA获得超过889个赞
知道小有建树答主
回答量:1672
采纳率:0%
帮助的人:1207万
展开全部
var postStr="MESSAGE="+message+"&CHAT_ID="+chat_id+"&TO_NAME="+to_name+"&USER_NAME="+user_name+"&QUIET="+quiet+"&TO_ID="+to_id+"&COLOR="+color;

可能存在url中文乱码。

请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。
后厂村cooder
2010-07-02 · TA获得超过566个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:277万
展开全部
ajax提交的数据应该都是utf-8编码的,如果在index.php里面接受到的数据是乱码的话需要通过iconv转换一下, iconv('utf-8','你的编码格式', $_POST['postStr'])
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappE738YUMrMlVTd
2010-06-21 · TA获得超过103个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:75.6万
展开全部
对于传递的参数的中文情况,URL要求必须编码,如果是Java语言实现如下:
编码:URLEncoder.encode(aURLFragment, "UTF-8");
解码:URLDecoder.decode(aURLFragment, "UTF-8");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式