Springboot從配置文件properties讀取字符串亂碼的解決
從配置文件properties讀取字符串亂碼
當(dāng)讀取properties的內(nèi)容為:發(fā)現(xiàn)中文亂碼。原因是由于默認(rèn)讀取的為ISO-8859-1格式,因此需要切換為UTF-8。
主要方式有如下兩種:
方式一
在你的application.properties中增加如下配置,避免中文亂碼
spring.http.encoding.enabled=true
方法二
在你的settings里面的File Encodings進(jìn)行更改為如圖1.1 中紅框。

圖1.1
properties文件的屬性值為中文,讀取時(shí)亂碼
我們?cè)陂_發(fā)中使用properties文件時(shí),常會(huì)遇到這樣的問題,比如說:
test.property.value=中文值
我們想把屬性值設(shè)置成中文,這樣無論使用@value還是直接讀取出來會(huì)出現(xiàn)亂碼,總結(jié)了兩種解決方案如下:
把屬性值直接轉(zhuǎn)成unicode編碼
寫在文件中,如:
test.property.value.unicode=\u4e2d\u6587\u503c
在方法中轉(zhuǎn)碼
如下面代碼中的getChinese()方法
package com.xiaobai.util;
import lombok.extern.slf4j.Slf4j;
import java.io.UnsupportedEncodingException;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
@Slf4j
public class PropertiesUtil {
protected static ResourceBundle erpResponse;
protected static final String PROPERTIES_FILE = "propertytest";
static {
try {
erpResponse = PropertyResourceBundle.getBundle(PROPERTIES_FILE);
} catch (Exception e) {
log.error(PROPERTIES_FILE + "配置文件加載失敗。", e);
}
}
public static String get(String key) {
return erpResponse.getString(key);
}
public static String getChinese(String key) {
String string = null;
try {
string = new String(erpResponse.getString(key).getBytes("ISO-8859-1"), "utf-8");
} catch (UnsupportedEncodingException e) {
log.error(e.getMessage());
}
return string;
}
public static void main(String[] args) {
//屬性值直接寫成中文,打印出來的結(jié)果:??-???
System.out.println(get("test.property.value"));
//解決方案一,使用轉(zhuǎn)碼的方式,打印結(jié)果:中文值
System.out.println(getChinese("test.property.value"));
//解決方案二,properties文件中的屬性值寫成unicode(\u4e2d\u6587\u503c),打印結(jié)果:中文值
System.out.println(get("test.property.value.unicode"));
}
}以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot整合thymeleaf 報(bào)錯(cuò)的解決方案
這篇文章主要介紹了SpringBoot整合thymeleaf 報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
springboot使用國產(chǎn)加密算法方式,sm2和sm3加解密demo
這篇文章主要介紹了springboot使用國產(chǎn)加密算法方式,sm2和sm3加解密demo,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
ZooKeeper官方文檔之Java客戶端開發(fā)案例翻譯
網(wǎng)上有很多ZooKeeper的java客戶端例子,我也看過很多,不過大部分寫的都不好,有各種問題。兜兜轉(zhuǎn)轉(zhuǎn)還是覺得官方給的例子最為經(jīng)典,在學(xué)習(xí)之余翻譯下來,供朋友們參考2022-01-01
mybatis plus實(shí)體類中字段映射mysql中的json格式方式
這篇文章主要介紹了mybatis plus實(shí)體類中字段映射mysql中的json格式方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
解析java基本數(shù)據(jù)類型傳遞與引用傳遞區(qū)別
這篇文章主要介紹了java基本數(shù)據(jù)類型傳遞與引用傳遞區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03

