java读取配置文件(properties)的时候,unicode码转utf

网友投稿 264 2022-10-30

java读取配置文件(properties)的时候,unicode码转utf

目录java读取properties,unicode码转utf-8代码如下properties配置文件编码问题

java读取properties,unicode码转utf-8

有时我们在读取properties结尾的配置文件的时候,如果配置文件中有中文,那么我们读取到的是unicode码的中文,需要我们在转换一下

代码如下

/**

* 将配置文件中的Unicode 转 utf-8 汉字

* @param 原始字符串

* @return 转换后的格式的字符串

*/

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 >lVXfuuv> 8) & 0xFF );

bb[ 1 ] = (byte) ( i & 0xFF ) ;

ByteBuffer b = ByteBuffer.wrap(bb);

sb.append( String.valueOf( set.decode(b) ).trim() );

http:// start = m.end() ;

}

start2 = str.length() ;

if( start2 > start ){

String seg = str.substring(start, start2) ;

sb.append( seg );

}

return sb.toString() ;

}

测试

public static void main(String[] args) {

String str = unicodeToChina("\u672a\u6765");

System.out.println(str);

}

结果:未来

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:越来越多的手机厂商开始放弃3.5mm耳机接口 你接受吗
下一篇:Dockerfile指令详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~