關(guān)于Java中properties文件編碼問題
Java properties文件編碼問題
問題一:Transparent native-to-ascii conversion是什么
在學(xué)習(xí)Spring boot的時候,通過 @ConfigurationProperties 注解來獲取配置信息時,中文亂碼,老師說需要在設(shè)置中設(shè)置properties文件編碼格式為UTF-8而且在IDEA中需要勾選 Transparent native-to-ascii conversion :
雖然確實解決了中文亂碼的問題,但是很奇怪為什么要勾選這個Transparent native-to-ascii conversion,這個東西的作用是什么呢?
查找資料后發(fā)現(xiàn)就是在運(yùn)行的時候?qū)⑽募D(zhuǎn)換成Unicode編碼。什么意思呢,也就是在文件展示是UTF-8編碼,但是實際運(yùn)行的時候把內(nèi)容轉(zhuǎn)換成了Unicode編碼:
圖一
圖二
圖一是IDEA中填寫的內(nèi)容,圖二是通過Editplus打開文件時顯示的內(nèi)容,很明顯可以看到IDEA自動轉(zhuǎn)換了文件編碼格式,這個就是Transparent native-to-ascii conversion的作用。
Java中屬性文件(*.properties)轉(zhuǎn)碼為UTF-8
命令..\jdk1.5.0_06\bin\native2ascii.exe是JDK自帶的轉(zhuǎn)碼工具
將中文轉(zhuǎn)碼為UTF8命令格式
native2ascii -encoding gb2312 before.properties after.properties
將轉(zhuǎn)碼后的字符轉(zhuǎn)換回中文命令格式:
native2ascii -reverse after.properties before.properties
before.properties文件中是轉(zhuǎn)碼前的中文, after.properties就是轉(zhuǎn)碼后的utf-8格式。
實例:
before.properties的內(nèi)容:
你好世界
after.properties的內(nèi)容:
\u4f60\u597d\u4e16\u754c
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot結(jié)合Mybatis實現(xiàn)創(chuàng)建數(shù)據(jù)庫表的方法
本文主要介紹了SpringBoot結(jié)合Mybatis實現(xiàn)創(chuàng)建數(shù)據(jù)庫表的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01SpringBoot讀取Resource目錄下文件的四種方式總結(jié)
在Spring?Boot項目中,經(jīng)常需要獲取resources目錄下的文件,這些文件可以包括配置文件、模板文件、靜態(tài)資源等,本文將介紹四種常用的方法來獲取resources目錄下的文件,需要的朋友可以參考下2023-08-08Springboot整合多數(shù)據(jù)源代碼示例詳解
這篇文章主要介紹了Springboot整合多數(shù)據(jù)源代碼示例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08SpringBoot項目打成War布署在Tomcat的詳細(xì)步驟
這篇文章主要介紹了SpringBoot項目打成War布署在Tomcat,本文分步驟結(jié)合圖文實例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03SpringBoot中使用spring-retry 解決失敗重試調(diào)用
本文主要介紹了SpringBoot中使用spring-retry 解決失敗重試調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Spring基于ProxyFactoryBean創(chuàng)建AOP代理
這篇文章主要介紹了Spring基于ProxyFactoryBean創(chuàng)建AOP代理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10Java面向?qū)ο蟪绦蛟O(shè)計:繼承,多態(tài)用法實例分析
這篇文章主要介紹了Java面向?qū)ο蟪绦蛟O(shè)計:繼承,多態(tài)用法,結(jié)合實例形式分析了java繼承與多態(tài)的相關(guān)概念、原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-04-04Java中使用BigDecimal進(jìn)行浮點(diǎn)數(shù)運(yùn)算
這篇文章主要介紹了Java中使用BigDecimal進(jìn)行浮點(diǎn)數(shù)運(yùn)算,需要的朋友可以參考下2014-07-07