❶ 如何解决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就行了。。。
不可能解决不了。。。