解決@Value("${name}")獲取application.properties中定義的引數中文亂碼的問題
阿新 • • 發佈:2018-12-26
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"