带Spring Boot 1.1.1的UTF-8编码
如何“说”Spring Boot使用UTF-8编码,正确显示和保存德语UMLAUT? 我们正在使用SpingBoot1.1.1(发行版)和作为Web服务器的TomCat7或Jetty来编程一个JavaWebApplication。用于测试的数据库是postgresql或h2 编辑: 我尝试了属性文件(谢谢你的回答),但是没有看到任何变化 数据库也是UTF-8。。。 特别是当我们向Web服务器发送POST请求时,问题就出现了。 Spring请求处理程序已经获取了中断的编码值。 在以下内容中,您可以看到部分代码: (它显示了ThymileAF模板的一个片段) 问候带Spring Boot 1.1.1的UTF-8编码,utf-8,character-encoding,spring-boot,Utf 8,Character Encoding,Spring Boot,如何“说”Spring Boot使用UTF-8编码,正确显示和保存德语UMLAUT? 我们正在使用SpingBoot1.1.1(发行版)和作为Web服务器的TomCat7或Jetty来编程一个JavaWebApplication。用于测试的数据库是postgresql或h2 编辑: 我尝试了属性文件(谢谢你的回答),但是没有看到任何变化 数据库也是UTF-8。。。 特别是当我们向Web服务器发送POST请求时,问题就出现了。 Spring请求处理程序已经获取了中断的编码值。 在以下内容中,您可以
我想最新的应该是默认的UTF-8?请参阅
server.tomcat.uri编码上的文档:。这可能取决于编码发生的位置(例如Spring Boot不知道数据库服务器编码)。什么是错误编码?请求还是响应server.tomcat.uri编码
正在将uri解码切换到UTF-8
(Jetty已经是这样了)
但这对请求机构没有任何作用。默认情况下,SpringMVC使用ISO-8859-1
(这是servlet规范的默认值)对其进行解码。如果希望使用UTF-8
对请求进行解码,则需要在请求中指定正文编码。大多数用户实际上都在使用CharacterEncodingFilter
来实现相同的功能(并确保一致性)
如果这解决了您的问题,请注意这意味着要为此提供自动配置。这有助于:
spring.datasource.url=jdbc:mysql://localhost:3306/securitydb?useUnicode=yes&characterEncoding=UTF-8
您可以将UTF-8设置为SpringBootMaven插件的默认编码。
我创建了2个maven概要文件以在UTF-8中运行spring引导,并通过maven概要文件设置活动的spring概要文件:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Dfile.encoding=UTF8 -Dspring.profiles.active="dev"</jvmArguments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>prod</id>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Dfile.encoding=UTF8</jvmArguments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
发展
真的
org.springframework.boot
springbootmaven插件
-Dfile.encoding=UTF8-Dspring.profiles.active=“dev”
戳
org.springframework.boot
springbootmaven插件
-Dfile.encoding=UTF8
跑
mvn spring引导:针对开发配置文件(application-dev.properties)和
mvn-p prod spring boot:run
for application.properties这和server.tomcat.uri encoding=UTF-8
都有效。一个用于防止数据库中的损坏,另一个用于在提交UTF时防止损坏。
spring.datasource.url=jdbc:mysql://localhost:3306/securitydb?useUnicode=yes&characterEncoding=UTF-8
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Dfile.encoding=UTF8 -Dspring.profiles.active="dev"</jvmArguments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>prod</id>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Dfile.encoding=UTF8</jvmArguments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>