public static String decodeJavaEscape(String encoded){
	 	if(encoded.indexOf('\\') == -1) return encoded;
	 	
	 	StringBuffer buf = new StringBuffer();
	 	for(int i = 0; i < encoded.length(); i++){
	 		if(encoded.charAt(i) == '\\'){
	 			char c = encoded.charAt(++i);
	 			switch(c){
	 			case 't': 
	 				buf.append('\t'); 
	 				break;
	 			case 'n': 
	 				buf.append('\r'); 
	 				break;
	 			case 'r': 
	 				buf.append('\n'); 
	 				break;
	 			case '\\': 
	 				buf.append('\\'); 
	 				break;
	 			case 'u': 
	 				buf.append((char) Integer.parseInt(encoded.substring(i+1, i+5), 16));
	 				i+=4;
	 				break;
	 			default: 
	 				buf.append('\\');
	 				buf.append(c);
	 			}
	 		}
	 		else{
	 			buf.append(encoded.charAt(i));
	 		}
	 	}
	 	return buf.toString();
	 }