prototypes JSON 中文乱码问题 (UTF-8 GB2312 GBK)
主要原因是
Ajax 调用时使用的是UTF-8编码,而被调用方一般默认是 GB2312/GBK 编码
只需要在被调用方设置请求的编码格式为UTF-8即可
request.setCharacterEncoding("UTF-8");
而返回头则不需要修改。
xxx.jsp
<%@ page language="java" c pageEncoding="GBK"%>
<%
request.setCharacterEncoding("UTF-8");
。。。。
%>
Tomcat 5.5 下通过
总结如下:
1 如果文件里面的charset='UTF-8' 那么文件一定存储为 UTF-8编码,dreamweaver默认为gb2312编码的
2 Ajax是采用utf-8编码的
3 在服务器端,设置编码的 request.setCharacterEncoding 语句一定要在任何一个getParameter() 语句之前,否则此语句实效
比如
<%
String action = request.getParameter("action");
....
request.setCharacterEncoding("UTF-8"); // 此语句不起作用了,切记
%>
4 如果是GET/POST混合处理的程序,可能需要如下 代码 在程序的最开始
<%
if("POST".equals(request.getMethod())){
request.setCharacterEncoding("UTF-8");
}
%>
这对于自己调用自己的ajax程序非常重要,普通GET调用时为gb2312编码,而在POST Ajax调用时为UTF-8编码
5 建议文件编码全部采用UTF-8比较好,只需在程序最开始增加
request.setCharacterEncoding("UTF-8")即可了,不需要任何特殊处理,所有程序,无论是否ajax,都是正确的!
只需要在被调用方设置请求的编码格式为UTF-8即可
request.setCharacterEncoding("UTF-8");
而返回头则不需要修改。
xxx.jsp
<%@ page language="java" c pageEncoding="GBK"%>
<%
request.setCharacterEncoding("UTF-8");
。。。。
%>
Tomcat 5.5 下通过
总结如下:
1 如果文件里面的charset='UTF-8' 那么文件一定存储为 UTF-8编码,dreamweaver默认为gb2312编码的
2 Ajax是采用utf-8编码的
3 在服务器端,设置编码的 request.setCharacterEncoding 语句一定要在任何一个getParameter() 语句之前,否则此语句实效
比如
<%
String action = request.getParameter("action");
....
request.setCharacterEncoding("UTF-8"); // 此语句不起作用了,切记
%>
4 如果是GET/POST混合处理的程序,可能需要如下 代码 在程序的最开始
<%
if("POST".equals(request.getMethod())){
request.setCharacterEncoding("UTF-8");
}
%>
这对于自己调用自己的ajax程序非常重要,普通GET调用时为gb2312编码,而在POST Ajax调用时为UTF-8编码
5 建议文件编码全部采用UTF-8比较好,只需在程序最开始增加
request.setCharacterEncoding("UTF-8")即可了,不需要任何特殊处理,所有程序,无论是否ajax,都是正确的!