java讀取配置文件(properties)的時(shí)候,unicode碼轉(zhuǎn)utf-8方式
java讀取properties,unicode碼轉(zhuǎn)utf-8
有時(shí)我們?cè)谧x取properties結(jié)尾的配置文件的時(shí)候,如果配置文件中有中文,那么我們讀取到的是unicode碼的中文,需要我們?cè)谵D(zhuǎn)換一下
代碼如下
/**
* 將配置文件中的Unicode 轉(zhuǎn) utf-8 漢字
* @param 原始字符串
* @return 轉(zhuǎn)換后的格式的字符串
*/
public static String unicodeToChina(String str) {
Charset set = Charset.forName("UTF-16");
Pattern p = Pattern.compile("\\\\u([0-9a-fA-F]{4})");
Matcher m = p.matcher( str );
int start = 0 ;
int start2 = 0 ;
StringBuffer sb = new StringBuffer();
while( m.find( start ) ) {
start2 = m.start() ;
if( start2 > start ){
String seg = str.substring(start, start2) ;
sb.append( seg );
}
String code = m.group( 1 );
int i = Integer.valueOf( code , 16 );
byte[] bb = new byte[ 4 ] ;
bb[ 0 ] = (byte) ((i >> 8) & 0xFF );
bb[ 1 ] = (byte) ( i & 0xFF ) ;
ByteBuffer b = ByteBuffer.wrap(bb);
sb.append( String.valueOf( set.decode(b) ).trim() );
start = m.end() ;
}
start2 = str.length() ;
if( start2 > start ){
String seg = str.substring(start, start2) ;
sb.append( seg );
}
return sb.toString() ;
} 測(cè)試
? ? ?public static void main(String[] args) {
? ? ? ? ? ?String str = unicodeToChina("\u672a\u6765"); ?
? ? ? ? ? ?System.out.println(str); ?
? ? }結(jié)果:未來
properties配置文件編碼問題
person.last-name=哈哈 person.age=18 person.bitrh=2019/01/12 person.boss=false person.maps.ke1=v1 person.maps.k2=13 person.lists=a,b,c,d person.dog.name=tom person.dog.age=15

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決idea中svn提交時(shí)performing vcs refresh時(shí)間很長(zhǎng)的問題
這篇文章主要介紹了解決idea中svn提交時(shí)performing vcs refresh時(shí)間很長(zhǎng)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09
SpringBoot集成Spring Data JPA及讀寫分離
這篇文章主要介紹了SpringBoot集成Spring Data JPA及讀寫分離的相關(guān)知識(shí),需要的朋友可以參考下2017-04-04
使用@JsonFormat和@DateTimeFormat對(duì)Date格式化操作
這篇文章主要介紹了使用@JsonFormat和@DateTimeFormat對(duì)Date格式化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
SpringBoot通過@Scheduled實(shí)現(xiàn)定時(shí)任務(wù)及單線程運(yùn)行問題解決
Scheduled定時(shí)任務(wù)是Spring boot自身提供的功能,所以不需要引入Maven依賴包,下面這篇文章主要給大家介紹了關(guān)于SpringBoot通過@Scheduled實(shí)現(xiàn)定時(shí)任務(wù)以及問題解決的相關(guān)資料,需要的朋友可以參考下2023-02-02
Action訪問Servlet的API的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄狝ction訪問Servlet的API的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06
java使用Socket實(shí)現(xiàn)SMTP協(xié)議發(fā)送郵件
這篇文章主要為大家詳細(xì)介紹了java使用Socket實(shí)現(xiàn)SMTP協(xié)議發(fā)送郵件的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-05-05

