java到js的中文无法显示,中文显示位(?)

本文介绍了解决使用JS调用Java的GET请求时,返回JSON数据中文显示乱码的问题。通过在@GetMapping注解中添加produces属性或在配置文件中设置bean,确保响应数据的编码为UTF-8,从而实现中文字符的正确解析。

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

今天遇到这么一个问题,用js调用java的get请求,得到的json数据中中文无法正常显示,jsp文件中都是申明utf-8格式的,查询了一番,发现问题出现在@ResponseBody上

@ResponseBody默认的编码格式为ISO-8859-1,需要修改,在@GetMapping中加入produces的内容

参考:springmvc @ResponseBody乱码,兼容UTF-8格式

java代码

@Controller
public class ExamController {
    @Autowired
    private ExamService examService;
    
    @GetMapping(value = "/getPaper", produces = "application/json; charset=utf-8")
    @ResponseBody
    public String getPaper(HttpSession session) {
        Paper paper = null;
        try {
            paper = this.examService.getPaper();
        }catch(SystemException e){
            session.setAttribute("msg", e.getMessage());
        }catch(Exception e1) {
            e1.printStackTrace();
        }
        System.out.println(paper.toString());
        return paper.toString();
    }
}

或者配置文件中添加bean

<bean class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
          <array>
                <bean class = "org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes" value = "text/plain;charset=UTF-8" />
                </bean>
        </array>
    </property>
</bean>

转载于:https://www.cnblogs.com/d-i-p/p/10994372.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值