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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章