關(guān)于Java中properties文件編碼問題
Java properties文件編碼問題
問題一:Transparent native-to-ascii conversion是什么
在學(xué)習(xí)Spring boot的時(shí)候,通過 @ConfigurationProperties 注解來獲取配置信息時(shí),中文亂碼,老師說需要在設(shè)置中設(shè)置properties文件編碼格式為UTF-8而且在IDEA中需要勾選 Transparent native-to-ascii conversion :
雖然確實(shí)解決了中文亂碼的問題,但是很奇怪為什么要勾選這個(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)容,圖二是通過Editplus打開文件時(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)文章
SpringBoot在項(xiàng)目中訪問靜態(tài)資源步驟分析
今天在玩SpringBoot的demo的時(shí)候,放了張圖片在resources目錄下,啟動(dòng)區(qū)訪問的時(shí)候,突然好奇是識(shí)別哪些文件夾來展示靜態(tài)資源的, 為什么有時(shí)候放的文件夾不能顯示,有的卻可以2023-01-01SpringBoot結(jié)合Mybatis實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫表的方法
本文主要介紹了SpringBoot結(jié)合Mybatis實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫表的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01SpringBoot讀取Resource目錄下文件的四種方式總結(jié)
在Spring?Boot項(xiàng)目中,經(jīng)常需要獲取resources目錄下的文件,這些文件可以包括配置文件、模板文件、靜態(tài)資源等,本文將介紹四種常用的方法來獲取resources目錄下的文件,需要的朋友可以參考下2023-08-08Springboot整合多數(shù)據(jù)源代碼示例詳解
這篇文章主要介紹了Springboot整合多數(shù)據(jù)源代碼示例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08SpringBoot項(xiàng)目打成War布署在Tomcat的詳細(xì)步驟
這篇文章主要介紹了SpringBoot項(xiàng)目打成War布署在Tomcat,本文分步驟結(jié)合圖文實(shí)例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03SpringBoot中使用spring-retry 解決失敗重試調(diào)用
本文主要介紹了SpringBoot中使用spring-retry 解決失敗重試調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07java對(duì)同一個(gè)文件進(jìn)行讀寫操作方法
在本篇文章里我們給大家詳細(xì)講述了java對(duì)同一個(gè)文件進(jìn)行讀寫操作的方法和知識(shí)點(diǎn),需要的朋友們可以參考學(xué)習(xí)下。2018-10-10Spring基于ProxyFactoryBean創(chuàng)建AOP代理
這篇文章主要介紹了Spring基于ProxyFactoryBean創(chuàng)建AOP代理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Java面向?qū)ο蟪绦蛟O(shè)計(jì):繼承,多態(tài)用法實(shí)例分析
這篇文章主要介紹了Java面向?qū)ο蟪绦蛟O(shè)計(jì):繼承,多態(tài)用法,結(jié)合實(shí)例形式分析了java繼承與多態(tài)的相關(guān)概念、原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-04-04Java中使用BigDecimal進(jìn)行浮點(diǎn)數(shù)運(yùn)算
這篇文章主要介紹了Java中使用BigDecimal進(jìn)行浮點(diǎn)數(shù)運(yùn)算,需要的朋友可以參考下2014-07-07