编码算不上一个大问题,即使你什么都不管,也有很大的可能你不会遇到任何问题,因为大部分框架都有默认的编码配置,有很多是UTF-8,那么遇到中文乱码的机会很低,所以很多人也忽视了。

Spring系列产品大量运用在网站开发中,而Spring Boot是为了简化配置而出现的,理论上讲Spring Boot应该默认配置UTF-8为默认编码,但是网络上依然可以看到很多关于Spring Boot乱码的文章,大部分解决方案沿用Spring MVC的方案,自定义EncodingFilter。

但是仔细查看Spring Boot的文档,可以看到默认的编码的确是UTF-8

1
2

spring.http.encoding.charset=UTF-8 # Charset of HTTP requests and responses. Added to the "Content-Type" header if not set explicitly.
spring.http.encoding.enabled=true # Enable http encoding support.

而相关的配置会在HttpEncodingAutoConfiguration中使用

1
2
3
4
5
6
7
8
9

@Bean
@ConditionalOnMissingBean(CharacterEncodingFilter.class)
public CharacterEncodingFilter characterEncodingFilter() {
CharacterEncodingFilter filter = new OrderedCharacterEncodingFilter();
filter.setEncoding(this.properties.getCharset().name());
filter.setForceRequestEncoding(this.properties.shouldForce(Type.REQUEST));
filter.setForceResponseEncoding(this.properties.shouldForce(Type.RESPONSE));
return filter;
}

而这里你其实可以看到,默认情况下forceRequestEncoding和forceResponseEncoding是为false的。

在配置中自己加上一行

1
spring.http.encoding.force=true

除了常见的http encoding,Spring Boot中还可以控制这些编码

1
2
3
4
5
6

banner.charset
spring.freemarker.charset
server.tomcat.uri-encoding
spring.mail.default-encoding
spring.messages.encoding
spring.thymeleaf.encoding

只不过这些值默认就设置为UTF-8,而且并需要搭配其他配置开关使用,所以一般不需要管。

转载于:https://www.cnblogs.com/exmyth/p/7202786.html

再谈Spring Boot中的乱码和编码问题相关推荐

  1. 解决Spring boot中读取属性配置文件出现中文乱码的问题

    解决Spring boot中读取属性配置文件出现中文乱码的问题 参考文章: (1)解决Spring boot中读取属性配置文件出现中文乱码的问题 (2)https://www.cnblogs.com/ ...

  2. 如何在Spring Boot中使用TDD写出高质量的接口

    本文发布于专栏Effective Java,如果您觉得看完之后对你有所帮助,欢迎订阅本专栏,也欢迎您将本专栏分享给您身边的工程师同学. 之前在<如何说服你的同事使用TDD>中介绍了为什么要 ...

  3. Spring Boot 中使用@Async实现异步调用,加速任务执行!

    欢迎关注方志朋的博客,回复"666"获面试宝典 什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照 ...

  4. 徒手解密 Spring Boot 中的 Starter自动化配置黑魔法

    我们使用 Spring Boot,基本上都是沉醉在它 Stater 的方便之中.Starter 为我们带来了众多的自动化配置,有了这些自动化配置,我们可以不费吹灰之力就能搭建一个生产级开发环境,有的小 ...

  5. Spring Boot中使用PostgreSQL数据库

    在如今的关系型数据库中,有两个开源产品是你必须知道的.其中一个是MySQL,相信关注我的小伙伴们一定都不陌生,因为之前的Spring Boot关于关系型数据库的所有例子都是对MySQL来介绍的.而今天 ...

  6. Spring Boot中使用时序数据库InfluxDB

    除了最常用的关系数据库和缓存之外,之前我们已经介绍了在Spring Boot中如何配置和使用MongoDB.LDAP这些存储的案例.接下来,我们继续介绍另一种特殊的数据库:时序数据库InfluxDB在 ...

  7. Spring Boot 中关于 %2e 的 Trick

    作者 | Ruilin 来源 | http://rui0.cn/archives/1643 分享一个Spring Boot中关于%2e的小Trick. 先说结论,当Spring Boot版本在小于等于 ...

  8. Spring Boot中如何扩展XML请求和响应的支持

    在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理.那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式 ...

  9. Spring Boot中使用LDAP来统一管理用户信息

    很多时候,我们在构建系统的时候都会自己创建用户管理体系,这对于开发人员来说并不是什么难事,但是当我们需要维护多个不同系统并且相同用户跨系统使用的情况下,如果每个系统维护自己的用户信息,那么此时用户信息 ...

最新文章

  1. python vars 的用法
  2. WPF入门:数据绑定
  3. windows下对路由表的操作命令
  4. xenserver 虚拟机扩容lvm磁盘分区的方法_从零开始学Linux运维|35.LVM(逻辑卷管理)的创建...
  5. svn 的使用(二)
  6. java requestbody map_@RequestBody 的正确使用办法
  7. 从内部重启python脚本
  8. 3个月亏17亿,贝壳释放了什么信号?
  9. Weblogic之简介
  10. 安装office2010提示在安装过程中出错 解决方法!
  11. 亚马逊服务器一键重装系统,如何使用Amazon Alexa轻松设置智能家居设备
  12. 怎么把分开的pdf放在一起_怎么把连一起的pdf分开
  13. 什么是软链接, 什么是硬链接
  14. Magento 数据表结构 EAV模型详解
  15. 操作系统-------用P,V操作解决生产者和消费者问题(详解!!!)
  16. python在图片上添加文字 - cv2模块的安装与使用
  17. Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-reso
  18. Ubuntu安装图形化界面
  19. Crowding Counter 之 可视化h5文件
  20. 看服务器时间修改日志,怎样看服务器远程更改时间记录

热门文章

  1. 《OpenCV3编程入门》学习笔记10 角点检测(二)Shi-Tomasi角点检测
  2. 嵌入式linux alsa,嵌入式Linux下ALSA音频架构ALSA-lib移植与编译心得
  3. bootstraptable 汇总_JS组件系列——表格组件神器:bootstrap table
  4. flink集成springboot案例_Flink从流处理到流批一体的19个最佳实践
  5. java中静态方法可以被继承_关于java:静态方法中的继承
  6. 20以内分数化小数表_数与代数之小数
  7. C/C++ 读取任意数目的整数
  8. java语言基础final_java语言中final的用法
  9. C语言面试题-这些简单的你能很快的写出来吗?
  10. 使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析