在我的spring boot应用程序中,我在configurationproperties中定义了一个模板字段,其默认值为(ascii):
@Getter
@Setter
@Configuration
@ConfigurationProperties("app.template")
public class AppTemplateProps {
String greeting = "\u00bfQu\u00e9 est\u00e1s haciendo %s?";
}
价值 AppTemplateProps.greeting
是正确的(是本机的):
¿Qué estás haciendo %s?
但当我定义 app.template.greeting
具有相同值的环境变量 AppTemplateProps.greeting
不正确(不是本机的):
\u00bfQu\u00e9 est\u00e1s haciendo %s?
那么我应该怎么做才能从环境变量中获得正确的(本机)值呢?
1条答案
按热度按时间jc3wubiy1#
ascii是一种仅定义95个字符的编码,不包括
á
或者é
或者¿
. 所以你所说的是不可能的;java字符串不是ascii,这就是为什么greeting
部分确实有效。所以,是的,如果你想储存é
通常情况下,你不能这样做;在java源文件中有\u
机制,但是。。。只在源代码中有效。你不能只是读一个字符串,然后神奇地把这些东西应用到你身上。没有一个简单的答案-要么确保你的输入是基于utf\u8的,只要坚持
é
或者,写一些适用的代码\u
解码。json字符串也支持这一点,所以这是一种方法。您也可以编写一些代码来实现这一点;这并不特别复杂。