❶ 如何解決jsON返回的中文亂碼
使用jQuery ajax調用的返回json,中文亂碼問題
Js代碼如下:
$.ajax({ url: '/test/testAction.do?method=test', type: 'POST', dataType: 'json', timeout: 5000, async: false, error: function(){ alert('獲取數據失敗!'); }, success: function(json){ jsObject = eval(json); } }); return jsObject;
Js代碼
<span style="font-size: x-small;">$.ajax({ url: '/test/testAction.do?method=test', type: 'POST', dataType: 'json', timeout: 5000, async: false, error: function(){ alert('獲取數據失敗!'); }, success: function(json){ jsObject = eval(json); } }); return jsObject;</span> action:
java代碼
JSONArray json = JSONArray.fromObject(SysList);//SysList是一個List // 設置response的ContentType解決中文亂碼 response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(json.toString()); return null; Java代碼 <span style="font-size: x-small;">JSONArray json = JSONArray.fromObject(SysList);//SysList是一個List // 設置response的ContentType解決中文亂碼 response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(json.toString()); return null;</span>
❷ SSH環境 jsp url跳轉,帶中文參數亂碼問題 高手請進,謝謝
URL中編碼格式為ISO-8859-1,處理中文只需將編碼格式轉換ISO-8859-1
方法一:
http://xxx.do?ptname='我是中國人'
String strPtname = request.getParameter("ptname");
strPtname = new String(strPtname.getBytes("ISO-8859-1"), "UTF-8");
方法二(推薦使用):
<%@ page contentType="text/html;charset=gb2312" %>
<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("編碼的是這里","GB2312")%>">點擊這里</a>
<%
//request.setCharacterEncoding("GBK");
if(request.getParameter("url")!=null)
{
str=request.getParameter("url");
str=java.net.URLDecoder.decode(str,"GB2312");
str=new String(str.getBytes("ISO-8859-1"));
out.print(str);
}
%>
==================================
public String chinatoString(String str)
{
String s=str;
try
{
byte tempB[]=s.getBytes("ISO-8859-1");
s=new String(tempB);
return s;
}
catch(Exception e)
{
return s;
}
}
====================================================
function URLencode(sStr)
{
return escape(sStr).
replace(/\+/g, '%2B').
replace(/\"/g,'%22').
replace(/\'/g, '%27').
replace(/\//g,'%2F');
}
方法三:
如果用jstl的話,可以自己寫一個el的function,調用URLEncoder.encode來編碼。
IE預設對URL後面的參數是不編碼發送的,但是tomat預設是按ISO8859-1來進行URL解碼,因此才會出現上述錯誤。好的做法是:
1、在URL參數中確保用UTF-8編碼之,方法可以用js函數encodeURI(),或調用自定義的el function;
2、設置server.xml中的Connector熟悉URIEncoding="UTF-8",確保解碼格式與編碼格式統一;
方法四:
<script>
for(var i=0;i<document.links.length;i++){
document.links[i].href=encodeURI(document.links[i].href);
}
</script>
在action中,String s=request.getParameter("s");
s=new String(s.getBytes("iso-8859-1"),"gbk");
以上方法是收聚了一些網友所講的解決方法 。
❸ 為什麼我的JSP程序想資料庫存入漢字時會出現亂碼怎麼解決啊
jsp傳值到資料庫出現亂碼,一般有兩個原因:
一種是jsp將數據發送給資料庫時出現亂碼,
一種是資料庫拿到數據後進行存儲是發生亂碼,
出現第一種問題時要去看jsp標簽中是否是為utf-8,再者就要看項目編目是否為utf-8右鍵項目名到preference下可以更改項目編碼。
出現第二種問題時,代表資料庫編碼有問題。右鍵你用的資料庫--資料庫屬性可以更換成utf-8具體視圖如下顯示,
在編碼過程中要保證項目不出現亂碼情況就要在創建項目和資料庫時對其編碼進行上述規定
❹ 急急急~!!jsp中用session.getAttribute獲取的參數出現亂碼
#############################補充一下########
filter servlet是一個特殊的servlet,是j2ee實現的一個攔截器,他能在調用回其他servlet之前調用他,用來答做信息攔截、字元處理等事情。。。。
首先弄一個類,實現filter介面,然後實現dofilter方法,裡面的對於request類型的參數,調用裡面設置字元編碼的方法,ide里都會有的。。。好像是setcharencoding什麼的,具體不記得了。看api。。。。
然後在web。xml部署,<filter></filter>裡面寫上部署的filter,然後<filter mapping></....>裡面寫上/*表示對於所有的servlet都進行攔截。。。
filter是sun自己實現的web中的aop組件。。
##############
方法不對。而且你編碼也設置錯了。gb2312或者utf8才對。。。
解決方法是使用filter servlet。
在dofilter方法裡面,設置request的charset為gb2312就行了。。。
不可能解決不了。。。