Springboot从配置⽂件properties读取字符串乱码的解决⽬录
从配置⽂件properties读取字符串乱码
⽅式⼀
⽅法⼆
properties⽂件的属性值为中⽂,读取时乱码
把属性值直接转成unicode编码
在⽅法中转码
从配置⽂件properties读取字符串乱码
当读取properties的内容为:发现中⽂乱码。原因是由于默认读取的为ISO-8859-1格式,因此需要切换为UTF-8。
主要⽅式有如下两种:
⽅式⼀
在你的application.properties中增加如下配置,避免中⽂乱码
abled=true
⽅法⼆
在你的settings⾥⾯的File Encodings进⾏更改为如图1.1 中红框。
图1.1
properties⽂件的属性值为中⽂,读取时乱码
我们在开发中使⽤properties⽂件时,常会遇到这样的问题,⽐如说:
test.property.value=中⽂值
我们想把属性值设置成中⽂,这样⽆论使⽤@value还是直接读取出来会出现乱码,总结了两种解决⽅案如下:
把属性值直接转成unicode编码
写在⽂件中,如:
test.property.value.unicode=\u4e2d\u6587\u503c
在⽅法中转码
如下⾯代码中的getChinese()⽅法
package com.xiaobai.util;
slf4j.Slf4j;
import java.io.UnsupportedEncodingException;
import java.util.PropertyResourceBundle;spring怎么读取properties
import java.util.ResourceBundle;
@Slf4j
public class PropertiesUtil {
protected static ResourceBundle erpResponse;
protected static final String PROPERTIES_FILE = "propertytest";
static {
try {
erpResponse = Bundle(PROPERTIES_FILE);
} catch (Exception e) {
<(PROPERTIES_FILE + "配置⽂件加载失败。", e);
}
}
public static String get(String key) {
String(key);
}
public static String getChinese(String key) {
String string = null;
try {
string = new String(key).getBytes("ISO-8859-1"), "utf-8");
} catch (UnsupportedEncodingException e) {
<(e.getMessage());
}
return string;
}
public static void main(String[] args) {
//属性值直接写成中⽂,打印出来的结果:ä¸æå¼
System.out.println(get("test.property.value"));
//解决⽅案⼀,使⽤转码的⽅式,打印结果:中⽂值
System.out.println(getChinese("test.property.value"));
//解决⽅案⼆,properties⽂件中的属性值写成unicode(\u4e2d\u6587\u503c),打印结果:中⽂值        System.out.println(get("test.property.value.unicode"));
}
}
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。