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

我的代码如下<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>
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() 方法分别对各组件进行编码。
ajax提交的数据应该都是utf-8编码的,如果在index.php里面接受到的数据是毕薯悄乱码的话需要通过iconv转换一下, iconv('utf-8','手渣手雹你的编码格式', $_POST['postStr'])
对于传递友盯敏的参数的中文情况,URL要求必须编码,如果是则逗Java语言实现如下:
编码:URLEncoder.encode(aURLFragment, "UTF-8"好枝);
解码:URLDecoder.decode(aURLFragment, "UTF-8");