CharacterEncodingFilter在SpringBoot中的配置

SpringMVC中有这样一个Filter专门处理编码问题的,它是CharacterEncodingFilter

比如默认给response返回设定编码格式为:UTF-8,则可以通过配置CharacterEncodingFilter实现、

所以在SpringMVC项目中使用,可以参考如下配置:

<filter>
    <filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

SpringBoot对CharacterEncodingFilter也有支持,只需如下配置

# 设置的编码,默认为:UTF-8
spring.http.encoding.charset=UTF-8

# 是否启用CharacterEncodingFilter,如果不配置也代表true
spring.http.encoding.enabled=true

# 是否强制设置请求和响应的编码格式为设置的编码格式
spring.http.encoding.force=

# 是否强制设置请求的编码格式为设置的编码格式
spring.http.encoding.force-request=

# 是否强制设置响应的编码格式为设置的编码格式
spring.http.encoding.force-response=

另外tomcat也可以配置,类似以前去配置tomcat的server.xml文件

server.tomcat.uri-encoding=UTF-8 # Character encoding to use to decode the URI

参考:

https://blog.csdn.net/buyaore_wo/article/details/78196701

https://blog.csdn.net/zhang_zhenwei/article/details/102486470?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当使用Spring Boot开发时,理论上是不会出现乱码的,因为Spring Boot默认编码为UTF-8。但是当客户端编码和服务器编码格式不一致时,就会导致乱码。解决这个问题有几种方法。首先,可以和客户端约定请求编码格式,强制约定为UTF-8。\[1\]其次,可以修改Spring Boot的配置文件,增加如下配置设置编码格式为UTF-8:spring.http.encoding.force=true、spring.http.encoding.charset=UTF-8、spring.http.encoding.enabled=true、server.tomcat.uri-encoding=UTF-8。\[2\]另外,也可以在Configuration类创建一个自定义的CharacterEncodingFilter设置编码格式为UTF-8。\[3\]此外,在RequestMapping上添加produces属性,指定返回的数据类型为application/json;charset=utf-8,可以防止文乱码。\[3\]如果还是出现乱码,可能是读取properties文件时出现了错误。 #### 引用[.reference_title] - *1* *2* [SpringBoot乱码问题解决](https://blog.csdn.net/qw463800202/article/details/103158653)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [解决SpringBoot返回文乱码问题方法汇总](https://blog.csdn.net/m0_59278919/article/details/127340225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值