带Spring Boot 1.1.1的UTF-8编码

带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请求处理程序已经获取了中断的编码值。 在以下内容中,您可以

如何“说”Spring Boot使用UTF-8编码,正确显示和保存德语UMLAUT? 我们正在使用SpingBoot1.1.1(发行版)和作为Web服务器的TomCat7或Jetty来编程一个JavaWebApplication。用于测试的数据库是postgresql或h2

编辑:

我尝试了属性文件(谢谢你的回答),但是没有看到任何变化

数据库也是UTF-8。。。 特别是当我们向Web服务器发送POST请求时,问题就出现了。 Spring请求处理程序已经获取了中断的编码值。 在以下内容中,您可以看到部分代码: (它显示了ThymileAF模板的一个片段)

问候
我想最新的应该是默认的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>