Java把字符串中的unicode码替换成相应的字符

来源:互联网 发布:禁用的网络怎么恢复 编辑:程序博客网 时间:2024/06/07 16:29

把字符串中的unicode码替换成相应的字符

如:\u003d

/** * 获取当前的路径 * @return */public static String getCurPath(){String path = null;File dir = new File("");try {path = dir.getAbsolutePath();System.out.println(dir.getCanonicalPath());System.out.println(dir.getAbsolutePath());} catch (Exception e) {// TODO: handle exception}return path;}/** * 修改字符串中的unicode码 * @param s 源str * @return  修改后的str */public static String decode2( String s ) {StringBuilder sb = new StringBuilder( s.length() );char[] chars = s.toCharArray();for( int i = 0; i < chars.length; i++ ){char c = chars[i];if( c == '\\' && chars[i + 1] == 'u'){char cc = 0;for( int j = 0; j < 4; j++ ){char ch = Character.toLowerCase( chars[i + 2 + j] );if( '0' <= ch && ch <= '9' || 'a' <= ch && ch <= 'f' ){cc |= ( Character.digit( ch, 16 ) << ( 3 - j ) * 4 );}else{cc = 0;break;}}if ( cc > 0 ){i += 5;sb.append( cc );continue;}}sb.append( c );}return sb.toString();}/** * 获取修复后的字符串 * @param str * @return */public static String getFixStr( String str ){String ret = str;Pattern p = Pattern.compile( "(\\\\u.{4})" );Matcher m = p.matcher( ret );while( m.find() ){String xxx = m.group( 0 );ret = str.replaceAll( "\\" + xxx, decode2( xxx ) );}return ret;}


1 0
原创粉丝点击