从应用程序读取属性时获取不需要的字符.属性文件



我正在尝试从应用程序属性文件读取值。它在本地(windows机器)上工作得很好,但是当我在aws上部署我的代码时,我得到一些不需要的字符附加到变量的值,例如在值的末尾/n。我正在使用Springboot

我们尝试在启动时将所有属性放入映射并记录它们。我们没有发现任何%0a字符附加到值中。下面是代码片段-

Properties prop = new Properties();
try(final InputStream stream =       
Application.class.getClassLoader().getResourceAsStream("application- 
dev.properties")) {
prop.load(stream);
System.out.println(prop.values().toString());
Set set = prop.entrySet();
Iterator itr = set.iterator();
while (itr.hasNext()) {
Map.Entry entry = (Map.Entry)itr.next();
log.info("key as Normal String "+entry.getKey());
log.info("key as URl Encoded "+ URLEncoder.encode(String.valueOf(entry.getKey()), String.valueOf(StandardCharsets.UTF_8)));
log.info("Value as Normal String "+entry.getValue());
log.info("Value as URl Encoded "+ URLEncoder.encode(String.valueOf(entry.getValue()), String.valueOf(StandardCharsets.UTF_8)));

在您的EC2实例中,您需要添加file.encoding参数并设置为UTF-8

我们可以在jvmArguments中使用maven传递这个属性:

mvn spring-boot:run -Drun.jvmArguments="-Dfile.encoding=UTF-8"

也可以导出为JAVA_TOOL_OPTIONS:

export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"

相关内容

  • 没有找到相关文章

最新更新