如何解决JSON返回的中文乱码?
发布网友
发布时间:2022-04-22 22:04
我来回答
共11个回答
热心网友
时间:2022-04-11 07:58
@RequestMapping(value="/getphone",proces = "text/plain;charset=utf-8")
/**输入手机号码后判断手机号是否存在*/
@RequestMapping(value="/getphone",proces = "text/plain;charset=utf-8")
@ResponseBody
public String getphone(String phone,HttpSession session){
Users u=service.selectPhoneService(phone);
if(u==null){//如果为空,则需要注册
String str="请您先注册,再登录。";
session.setAttribute("str", str);
return "请您先注册,再登录。";
}
return "true";
<!-- 处理请求返回json字符串的中文乱码问题 -->
<mvc:annotation-driven>
<mvc:message-converters>
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
热心网友
时间:2022-04-11 09:16
一个国标一个通标 数据库编码 和你java的编码格式不一致,看起来像是 GBK--》UTF8 你的java 是gbk 数据库是UTF8 数据库编码 和你java的编码统一都用GBK、GB2312应该没有问题
服务器返回的是utf-8,jsp页面上也是utf-8,数据库也是utf-8怎么就是乱码呢!!!!问题出在getHttpResponse 输入流!in = new BufferedReader(new InputStreamReader(connection.getInputStream()));改为in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
///////////以下如果都试过了还无效,你可以找找你的输入流输出流是不是有问题////////////////URLDecoder.decode(URLDecoder.decode(json, "GBK"), "UTF-8");response.setContentType("text/html;charset=utf-8");json =new String(json.getBytes(),"UTF-8");
为了50分也是拼了 解决了请点赞 没决绝也别踩 为你百度半天
热心网友
时间:2022-04-11 10:51
使用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>
热心网友
时间:2022-04-11 12:42
服务器是UTF-8吗,数据库是UTF-8吗?
getHttpResponse 输入流的位置怎么写的?
如果是这样,in = new BufferedReader(new InputStreamReader(connection.getInputStream()));改成这样,in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
如果都试过了还无效,你可以看看你的输入流输出流是不是有问题
URLDecoder.decode(URLDecoder.decode(json, "GBK"), "UTF-8");
response.setContentType("text/html;charset=utf-8");
json =new String(json.getBytes(),"UTF-8");
热心网友
时间:2022-04-11 14:50
你的json 字符串的内容本来就乱码了吧
你可以在获取字符串 json的地方做编码处理
你的代码是 字符串->byte[]->字符串 所以那个UTF8 可能效果不到
如果解决乱码的话 需要的是 byte[]->转字符串
转码应该在JSON 之前 不知在json 之后
热心网友
时间:2022-04-11 17:15
GBK还有乱码就换成GB2312呗。
热心网友
时间:2022-04-11 19:56
你有用输入流或者输出流么?
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
改为
in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
输出就是 out ,同理,试试看。
热心网友
时间:2022-04-11 22:54
在json返回数据是用mb_substr();截取到你想要获取的内容。里面可以设置字符编码格式。希望对你有帮助或者
在 client.DownloadString(getWeatherInfoUrl); 之前加上下面的代码试试:
client.Encoding = System.Text.Encoding.UTF8;
热心网友
时间:2022-04-12 02:09
这个我也碰到过,把你的整个工程项目的编码设置成UTF-8就可以了,就是在eclipse那里选中你的项目,右键选择属性,resource那里改成UTF-8就可以了!
热心网友
时间:2022-04-12 05:40
你获取json的时候用URLDecoder.decode(Json);解码下
热心网友
时间:2022-04-12 09:28
估计服务器端反馈的字符串不是UTF-8格式的编码。。。