前后端数据交互如何避免中文乱码问题??(亲自踩坑)

本文讲述了在前后端交互中遇到的中文乱码问题,分析了原因并提供了四种解决方案:1)设置Tomcat的servlet.xml的URIEncoding为UTF-8;2)配置编码过滤器;3)在JSP或HTML页面中设置编码;4)在请求中指定编码方式。作者分享了个人学习过程中的踩坑经验,旨在帮助读者避免类似问题。

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

事件起因:

我在页面中要实现一个模糊查询,我用参数的序列化然后把参数回传到后端查询,一直显示无数据,一看日志文件才发现:传过来的参数(作为查询的参数)却是???,说明中文乱码了

简单分析分析了一下:

传的参数没问题,检查了控制器和各种配置文件都没发现问题,也配置了编码过滤器,但是问题还是没解决,最后一只一直的尝试,发现:是由于没有指定Tomcat服务器的编码而导致的乱码

  • 首先分析出现乱码的原因:

出现乱码很可能是由于我们的后端的编码和前端的编码不一致.可分为多种情况:

  1. 前端要接受后端的数据,但是前端接收数据时,没有设置解码方式,那么就使用默认的解码方式,那么就会发生错误
  2. 后端要接受前端的数据,但是后端接收数据时,没有设置解码方式,那么就使用默认的解码方式,就发送乱码问题

不论是get方式请求数据或者post方式请求数据,我们都需要保证数据的编码和解码的方式保证统一

这里推荐几种我在学习路上踩的一些坑的解决方式:

1.设置Tomcat的servlet.xml的编码方式

让服务器的编码方式和写代码的编码方式尽量保持统一

默认情bai况下,tomcat使用的的编码方式:iso8859-1
修改tomcat下的conf/server.xml文件
找到du如下代码:

这段zhi代码规定了Tomcat监听HTTP请求的端口号dao等信息。
可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat(默认ISO-8859-1编码)以UTF-8的编码处理get请求。
修改完成后:

2.配置编码过滤器

让我们的代码的编码方式统一,避免编码不统一的情况

    <filter>
        <filter-name>CharacterEncodeingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炒冷饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值