java开发遇到的所有中文乱码总结

飞一样的编程
飞一样的编程
擅长邻域:Java,MySQL,Linux,nginx,springboot,mongodb,微信小程序,vue

分类: Java 标签: 中文乱码

2023-10-26 15:50:02 232浏览

所有中文乱码总结

1.post请求乱码

需要加过滤器,设置utf-8

<filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

2.get请求乱码

需要在Tomcat的server.xml里配置URIEncoding="utf-8"

3.log4j控制台打印中文乱码:

配置Tomcat VM options值为:-Dfile.encoding=UTF-8就可以

4. 请求响应中文乱码原始解决方法

req.setCharacterEncoding("UTF-8");
        //resp指的是响应
        resp.setContentType("text/html;charset=UTF-8");
        resp.setCharacterEncoding("UTF-8");

5.ajax请求json数据中文乱码

案例:查看某个用户的详情的时候,想在当前页面局部刷新展示不跳页面增强用户体验

  • 1.ajax返回中文乱码解决:
  • 1.1中文乱码解决方法1

在@GetMapping里加produces = {"application/json;charset=UTF-8"}

  • 1.2中文乱码解决方法2

springmvc配置文件加消息转换器的配置

 <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

  • 1.3补充jackson的方式

其实直接使用jackson的三个jar包后,放回实体类型的json对象格式就不会出现中文乱码问题,springmvc默认内置的是jackson的消息转换器。

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695