1. 程式人生 > 其它 >tomcat 返回json亂碼問題解決記錄

tomcat 返回json亂碼問題解決記錄

技術標籤:問題記錄tomcatspringmvc

在學習springmvc 時候,通過註解@ResponseBody註解直接返回一個字串時,中文全變成???了,網上各種查改這又改那。

我自己寫了個過濾器,通過設定contentType等都沒有效果

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.
out.println("========================================"); servletRequest.setCharacterEncoding("UTF-8"); servletResponse.setCharacterEncoding("UTF-8"); servletResponse.setContentType("application/json;charset=utf-8"); filterChain.doFilter
(servletRequest,servletResponse); }

搞了好久才發現,設定根本沒有生效(在Controller上設定也沒有效果)
在這裡插入圖片描述
最後是通過加produces這個屬性修改成功

 @RequestMapping(value = "/test/submit",produces = "application/json;charset=utf-8")

或者改為無返回值型別void

    @ResponseBody
    @RequestMapping(value = "/test/submit")
    public
void testSubmit(@RequestParam("name") String name, HttpServletResponse response) throws IOException { response.setContentType("application/json;charset=utf-8"); PrintWriter writer = response.getWriter(); writer.print("中文不亂了"); }

具體深究我找到一個分析該問題的博主的文章可以傳送過去連結