springmvc 返回json 出现“??”

当SpringMVC返回JSON数据时,可能出现“??”乱码问题。原因包括页面字符集设置、服务器数据传输和数据库数据编码等。检查发现,响应头已设置为UTF-8,数据库数据正常,但@ResponseBody默认编码为ISO-8859-1。解决方法包括在具体请求上指定字符集或者全局配置消息转换器,确保使用UTF-8编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现的可能原因:1.页面的显示字符集不正确,2服务器传递的数据乱码3,服务器查询出的数据乱码

1.对其报文查看,返回的response 中的字符集信息是utf-8,页面字符集<meta charset="utf-8" />表名服务器到客户端数据是正确的

2.数据库中的数据不是乱码的,取数据的url中也定义了字符集,取数据是正确的。?characterEncoding=UTF-8

3.查找@ResponseBody默认返回的字符集是ISO-8859-1

解决办法:

1.局部:在requestMapping中添加

produces="text/html;charset=UTF-8"

2.全局

<mvc:annotation-driven >
<!-- 消息转换器 -->
   <mvc:message-converters register-defaults="true">
     <bean class="org.springframework.http.converter.StringHttpMessageConverter">
       <property name="supportedMediaTypes" value="text/html;charset=UTF-8"/>
     </bean>
   </mvc:message-converters>
</mvc:annotation-driven>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值