把字符串中的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;
}