1. 程式人生 > >解決@Value("${name}")獲取application.properties中定義的引數中文亂碼的問題

解決@Value("${name}")獲取application.properties中定義的引數中文亂碼的問題

application.properties中引數如圖:

pom.xml中設定如圖

但程式碼

import org.springframework.web.bind.annotation.RestController;



@RequestMapping("/hello")

@RestController

public class HelloController {



@Value("${author.name}")

private String name ;



@Value("${author.sex}")

private String sex;



@Value("${author.birthday}")

private String birthday;



@RequestMapping("/index")

public String index(){

String str = "你好笨筆!"+"name:"+name+";sex:"+sex+";birthday:"+birthday;

System.out.println(str);

return str;

}



}

輸出的結果卻是:

你好笨筆!name:"��˧��motto";sex:"��";birthday:"2018-12-24"

將application.properties複製到桌面檢視它的編碼:

為了驗證一下,將pom.xml的編碼配置改為GB2312,結果卻是

浣�濂界�ㄧ��!name:"´ó˧¸çmotto";sex:"ÄÐ";birthday:"2018-12-24"

得出的結果不但原來的沒好,原來好的也變不好了。

說明我們大環境中的編碼是UTF-8的。那麼把application.properties的編碼格式改為UTF-8再放到工程中

重新執行得到的結果是

你好笨筆!name:"大å¸å¥motto";sex:"ç·";birthday:"2018-12-24"

和首次一樣。然後查詢百度,說需要改setting中的File Encodings。於是進去修改

,修改後還是沒解決。

其實,application.properties是不應該寫中文的,得用經過UTF-8的字元代替

得到結果為

你好笨筆!name:"大帥哥motto";sex:"男";birthday:"2018-12-24"