prototypes JSON 中文乱码问题 (UTF-8 GB2312 GBK)

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,都是正确的!
发布了0 篇原创文章 · 获赞 0 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章