AJAX POST乱码问题
来源:互联网 发布:dijkstra java 编辑:程序博客网 时间:2024/06/08 05:00
由于XMLHttpRequest POST的内容是用UTF-8编码,所以在服务端要先把request的编码改为UTF-8.
而且客户端post的表单是x-www-form-urlencoded的,所以也要对post的内容进行编码encodeURIComponent()函数
escape() 只是为 ASCII字符 做转换工作,转换成的 %unnnn 这样的码,如果要用更多的字符如 UTF-8字符库
就一定要用 encodeURIComponent() 或 encodeURI() 转换才可以成 %nn%nn
还有
escape() 不编码这些字符: @*/+
encodeURI() 不编码这些字符: !@#$&*()=:/;?+'
encodeURIComponent() 不编码这些字符: !*()'
还是推荐使用encodeURIComponent()函数来编码比较好。
代码如下:
在客户端的js脚本
<script>
function myXMLHttpRequest(){
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}
content = "user="+encodeURIComponent("大发");
xmlHttp.Open("POST", "doc.jsp", false);
xmlHttp.setRequestHeader("Content-Length",content.length);
xmlHttp.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
xmlHttp.Send(content);
</script>
JSP
<%@page language="java" contentType="text/html;charset=gbk"%>
<%
request.setCharacterEncoding("UTF-8");
System.out.println(request.getParameter("user"));
%>
- AJAX POST乱码问题
- ajax post中文乱码问题
- js 解决ajax post 中文乱码问题
- Ajax使用POST提交中文乱码问题
- Ajax使用POST提交中文乱码问题
- 关于ajax $.post() 返回乱码问题
- ajax post传递参数中文乱码问题
- 解决ajax post提交乱码问题
- AJAX下Post表单(解决中文乱码问题)
- AJAX下Post表单(解决中文乱码问题)
- Ajax post 方法传递后,中文乱码问题!
- Ajax使用POST提交中文乱码问题(转)
- Ajax使用POST提交中文乱码问题(转)
- 解决Ajax post中文乱码问题的三种方案
- ajax用post提交中文乱码问题(待补充)
- 关于 Ajax Post 的乱码问题处理方法
- Ajax 传中文参数乱码问题(Post和Get方式)
- 解决juqery ajax post方式传送数据乱码问题
- 自动投票系统【五】其他技术
- 教你编写自己的BAT批处理文档
- Windows Shell扩展系列文章 1 - .NET 4 编写Windows Shell上下文菜单扩展
- 使用DataAdapter.Update的简单方法~~~
- mysql中中字符串截取函数
- AJAX POST乱码问题
- 读写锁
- English Words 2011-04-14
- git 删除导致本地和远程仓库不同步解决
- 导入导出mysql表数据到csv
- java String几҉种҉形҉式҉
- 赋值表达式的值
- KMP算法实现
- updatepanel 与 fileupload控件不能一起用?获取不到值(解决办法)