關(guān)于Java中properties文件編碼問(wèn)題
Java properties文件編碼問(wèn)題
問(wèn)題一:Transparent native-to-ascii conversion是什么
在學(xué)習(xí)Spring boot的時(shí)候,通過(guò) @ConfigurationProperties 注解來(lái)獲取配置信息時(shí),中文亂碼,老師說(shuō)需要在設(shè)置中設(shè)置properties文件編碼格式為UTF-8而且在IDEA中需要勾選 Transparent native-to-ascii conversion :

雖然確實(shí)解決了中文亂碼的問(wèn)題,但是很奇怪為什么要勾選這個(gè)Transparent native-to-ascii conversion,這個(gè)東西的作用是什么呢?
查找資料后發(fā)現(xiàn)就是在運(yùn)行的時(shí)候?qū)⑽募D(zhuǎn)換成Unicode編碼。什么意思呢,也就是在文件展示是UTF-8編碼,但是實(shí)際運(yùn)行的時(shí)候把內(nèi)容轉(zhuǎn)換成了Unicode編碼:

圖一

圖二
圖一是IDEA中填寫的內(nèi)容,圖二是通過(guò)Editplus打開(kāi)文件時(shí)顯示的內(nèi)容,很明顯可以看到IDEA自動(dòng)轉(zhuǎn)換了文件編碼格式,這個(gè)就是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格式。
實(shí)例:
before.properties的內(nèi)容:
你好世界
after.properties的內(nèi)容:
\u4f60\u597d\u4e16\u754c
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java詳細(xì)分析連接數(shù)據(jù)庫(kù)的流程
Java數(shù)據(jù)庫(kù)連接,JDBC是Java語(yǔ)言中用來(lái)規(guī)范客戶端程序如何來(lái)訪問(wèn)數(shù)據(jù)庫(kù)的應(yīng)用程序接口,提供了諸如查詢和更新數(shù)據(jù)庫(kù)中數(shù)據(jù)的方法。JDBC也是Sun Microsystems的商標(biāo)。我們通常說(shuō)的JDBC是面向關(guān)系型數(shù)據(jù)庫(kù)的2022-05-05
Spring?Boot?多數(shù)據(jù)源處理事務(wù)的思路詳解
這篇文章主要介紹了Spring?Boot?多數(shù)據(jù)源如何處理事務(wù),本文單純就是技術(shù)探討,要從實(shí)際應(yīng)用中來(lái)說(shuō)的話,我并不建議這樣去玩分布式事務(wù)、也不建議這樣去玩多數(shù)據(jù)源,畢竟分布式事務(wù)主要還是用在微服務(wù)場(chǎng)景下,對(duì)Spring?Boot?多數(shù)據(jù)源事務(wù)相關(guān)知識(shí)感興趣的朋友參考下本文2022-06-06
Java多線程之定時(shí)器Timer的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Java多線程中定時(shí)器Timer類的使用以及模擬實(shí)現(xiàn),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
Java設(shè)計(jì)模式之原型設(shè)計(jì)示例詳解
這篇文章主要為大家詳細(xì)介紹了Java的原型設(shè)計(jì)模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03
SkyWalking自定義鏈路追蹤實(shí)現(xiàn)步驟
本文詳細(xì)介紹了如何使用SkyWalking進(jìn)行自定義鏈路追蹤的步驟,包括POM文件依賴和邏輯業(yè)務(wù)代碼的編寫,文章最后推薦了腳本之家作為進(jìn)一步學(xué)習(xí)的資源2024-02-02
IDEA如何將Java項(xiàng)目打包成可執(zhí)行的Jar包
在Java開(kāi)發(fā)中,我們通常會(huì)將我們的項(xiàng)目打包成可執(zhí)行的Jar包,以便于在其他環(huán)境中部署和運(yùn)行,本文將介紹如何使用IDEA集成開(kāi)發(fā)環(huán)境將Java項(xiàng)目打包成可執(zhí)行的Jar包,感興趣的朋友一起看看吧2023-07-07

