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

2024-12-28 02:55:20
推荐回答(3个)
回答1:

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() 方法分别对各组件进行编码。

回答2:

ajax提交的数据应该都是utf-8编码的,如果在index.php里面接受到的数据是乱码的话需要通过iconv转换一下, iconv('utf-8','你的编码格式', $_POST['postStr'])

回答3:

对于传递的参数的中文情况,URL要求必须编码,如果是Java语言实现如下:
编码:URLEncoder.encode(aURLFragment, "UTF-8");
解码:URLDecoder.decode(aURLFragment, "UTF-8");