$.get("FlxsAction",null,function(data){
//alert("back");
//var lmObj = eval("("+data+")");
var lmObj = data;
if(lmObj.length!=0){
for(var i = 0 ; i<lmObj.length ; i++){
alert(lmObj[i]); //乱码=====================
$("<option value='"+lmObj[i]+"'>"+lmObj[i]+"</option>").appendTo(flxs);
}
}
},"json");
服务器端是一个Action(Struts2)
LmListDAO lm = new LmListDAO();
ArrayList<String> lmlist = lm.getLmList();
if(lmlist!=null){
Gson g = new Gson();
String listToJson = g.toJson(lmlist);
System.out.println("-----Gson类型转换------");
System.out.println(listToJson);
out.write(listToJson);//此处控制台输出没有乱码
}
请大家给个建议! 谢谢!
16 个解决方案
#1
response.setCharacterEncoding("UTF-8");
response.getWriter().write(listToJson);
response.getWriter().write(listToJson);
#2
还是不行,为此我做了很多修改:
1、在JSP页面上设置了js的引入文件编码类型
<script type="text/javascript" src="../js/admin_news_list_flxs.js" charset="gbk"/>
2、设置了Action中的编码形式
response.setContentType("application/json;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
3、设置了JSP页面的
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
以上设置都没有解决问题,希望知道的朋友告诉一下解决方法!
1、在JSP页面上设置了js的引入文件编码类型
<script type="text/javascript" src="../js/admin_news_list_flxs.js" charset="gbk"/>
2、设置了Action中的编码形式
response.setContentType("application/json;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
3、设置了JSP页面的
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
以上设置都没有解决问题,希望知道的朋友告诉一下解决方法!
#3
Gson g = new Gson();
String listToJson = g.toJson(lmlist);
不是很清楚这里的Gson是什么转换策略,你控制台中打印出来的json数据字符串是怎样的呢?
String listToJson = g.toJson(lmlist);
不是很清楚这里的Gson是什么转换策略,你控制台中打印出来的json数据字符串是怎样的呢?
#4
控制台没有乱码产生,输出信息正常
---------------------------------------------------------------------------------------------------
["显示所有栏目信息","农村特色","公告通知","村情介绍","基层党建","政策法规","服务指南","招商引资","新农村建设","村务公开","农业科技","图片新闻","交易平台"]
---------------------------------------------------------------------------------------------------
["显示所有栏目信息","农村特色","公告通知","村情介绍","基层党建","政策法规","服务指南","招商引资","新农村建设","村务公开","农业科技","图片新闻","交易平台"]
#5
AJAX解决中英文麻烦。
#6
1.确保out.write(listToJson);是在设置response的编码格式之后调用的。
2.把js和jsp的页面编码也是为utf-8试试,不要既有gb2312也有utf-g
3.看看js和jsp,action那个类的文件的属性,看文件的编码是否为utf-8。
基本应该就这几个点。楼主可以再试试,其他的想到再告诉你。
2.把js和jsp的页面编码也是为utf-8试试,不要既有gb2312也有utf-g
3.看看js和jsp,action那个类的文件的属性,看文件的编码是否为utf-8。
基本应该就这几个点。楼主可以再试试,其他的想到再告诉你。
#7
在JS调用后台方法那里设置:response.setContentType("text/html;charset=utf-8");
#8
关注 帮顶 !...
#9
在ACTION里加入
JSP里的头是:
我是这样设置的,没有乱码!!
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/json; charset=GBK");
JSP里的头是:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
我是这样设置的,没有乱码!!
#10
问题还是没有解决,后台中文编码都没有问题,问题是传回JS里面就产生了乱码!
#11
ServletActionContext.getResponse().setContentType("application/json; charset=utf-8");
我也在为这个问题烦恼,加了上面那句就好了,非常感谢,哈哈!
#12
很郁闷,按照常理来说,我列举的以上三种方式可以解决问题了,但是很不幸的是问题依旧没解决,我又写了一个过滤器类,结果依然是乱码,真是悲剧了...
哪位高手能帮忙解决一下啊!
哪位高手能帮忙解决一下啊!
#13
请问楼主,这个问题你解决了吗?
#14
请问楼主struts2中,在Action里面 out.write(listToJson)能把数据发送到前台吗?
#15
楼主用的gson的jar版本是多少的?我用gson-2.1.jar就乱码,用gson-1.2.3.jar就没有乱码。
没做更多尝试。
没做更多尝试。
#16
把TOMCAT的编码方式改成UTF-8
#1
response.setCharacterEncoding("UTF-8");
response.getWriter().write(listToJson);
response.getWriter().write(listToJson);
#2
还是不行,为此我做了很多修改:
1、在JSP页面上设置了js的引入文件编码类型
<script type="text/javascript" src="../js/admin_news_list_flxs.js" charset="gbk"/>
2、设置了Action中的编码形式
response.setContentType("application/json;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
3、设置了JSP页面的
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
以上设置都没有解决问题,希望知道的朋友告诉一下解决方法!
1、在JSP页面上设置了js的引入文件编码类型
<script type="text/javascript" src="../js/admin_news_list_flxs.js" charset="gbk"/>
2、设置了Action中的编码形式
response.setContentType("application/json;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
3、设置了JSP页面的
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
以上设置都没有解决问题,希望知道的朋友告诉一下解决方法!
#3
Gson g = new Gson();
String listToJson = g.toJson(lmlist);
不是很清楚这里的Gson是什么转换策略,你控制台中打印出来的json数据字符串是怎样的呢?
String listToJson = g.toJson(lmlist);
不是很清楚这里的Gson是什么转换策略,你控制台中打印出来的json数据字符串是怎样的呢?
#4
控制台没有乱码产生,输出信息正常
---------------------------------------------------------------------------------------------------
["显示所有栏目信息","农村特色","公告通知","村情介绍","基层党建","政策法规","服务指南","招商引资","新农村建设","村务公开","农业科技","图片新闻","交易平台"]
---------------------------------------------------------------------------------------------------
["显示所有栏目信息","农村特色","公告通知","村情介绍","基层党建","政策法规","服务指南","招商引资","新农村建设","村务公开","农业科技","图片新闻","交易平台"]
#5
AJAX解决中英文麻烦。
#6
1.确保out.write(listToJson);是在设置response的编码格式之后调用的。
2.把js和jsp的页面编码也是为utf-8试试,不要既有gb2312也有utf-g
3.看看js和jsp,action那个类的文件的属性,看文件的编码是否为utf-8。
基本应该就这几个点。楼主可以再试试,其他的想到再告诉你。
2.把js和jsp的页面编码也是为utf-8试试,不要既有gb2312也有utf-g
3.看看js和jsp,action那个类的文件的属性,看文件的编码是否为utf-8。
基本应该就这几个点。楼主可以再试试,其他的想到再告诉你。
#7
在JS调用后台方法那里设置:response.setContentType("text/html;charset=utf-8");
#8
关注 帮顶 !...
#9
在ACTION里加入
JSP里的头是:
我是这样设置的,没有乱码!!
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/json; charset=GBK");
JSP里的头是:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
我是这样设置的,没有乱码!!
#10
问题还是没有解决,后台中文编码都没有问题,问题是传回JS里面就产生了乱码!
#11
ServletActionContext.getResponse().setContentType("application/json; charset=utf-8");
我也在为这个问题烦恼,加了上面那句就好了,非常感谢,哈哈!
#12
很郁闷,按照常理来说,我列举的以上三种方式可以解决问题了,但是很不幸的是问题依旧没解决,我又写了一个过滤器类,结果依然是乱码,真是悲剧了...
哪位高手能帮忙解决一下啊!
哪位高手能帮忙解决一下啊!
#13
请问楼主,这个问题你解决了吗?
#14
请问楼主struts2中,在Action里面 out.write(listToJson)能把数据发送到前台吗?
#15
楼主用的gson的jar版本是多少的?我用gson-2.1.jar就乱码,用gson-1.2.3.jar就没有乱码。
没做更多尝试。
没做更多尝试。
#16
把TOMCAT的编码方式改成UTF-8