gpt4 book ai didi

java - 属性文件中的 @TestPropertySource 和 UTF-8 支持

转载 作者:行者123 更新时间:2023-11-30 08:34:33 28 4
gpt4 key购买 nike

我正在为我的 Spring 应用程序进行集成测试,我希望能够使用 UTF-8 编码读取测试类中的属性文件。

现在,如果我想在我的属性中包含 'ä' 字符,我需要将其作为 U\00E4 放入我的属性文件中,因为默认情况下属性文件是使用 ISO-8859-1 读取的。

如何配置我的测试应用程序上下文以读取 UTF-8 编码的属性文件?

最佳答案

1.从 UTF-8 文件生成 .properties:在构建基础结构中,如 maven,可以使用过滤器复制 .properties 文件,该过滤器将 UTF-8 源转义为构建目录中的 ISO-8859-1:将 ĉ 转换为 \u0109

它的优点是没有使用非标准特性,可以使用ResourceBundle。

2。一个好的属性编辑器:先前解决方案的缺点是不再可以使用属性编辑器(并排使用不同的语言),这是次要的,因为好的属性编辑器会在后台显示 Unicode 字符和 u-escapes。因此,当使用属性编辑器时,不需要做任何事情并将文件保留为 ISO-8859-1。

3.不是 ResourceBundle,而是属性:但是类 Properties 可以加载 UTF-8。那么不应该使用 ResourceBundle。在 Spring 中,这意味着不要使用 ResourceBundleMessageSource,而是使用 ReloadableResourceBundleMessageSource

<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value=".../test/classes/..."/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="fileEncodings" value="UTF-8"/>
</bean>

(顺便说一句:ä\u00E4 是一个 ISO-8859-1 字符,当编辑器设置为 ISO- 时不需要 u-escaping 8859-1。因此请尝试使用希腊语、西里尔语等进行测试。)

关于java - 属性文件中的 @TestPropertySource 和 UTF-8 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38789532/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com