public static String uncompressUtf8(String str){
		if (str == null || str.length() == 0) {
			return str;
		}
		try{
			int idx = str.indexOf('_');
			String len = str.substring(0,idx);
			String cont = str.substring(idx+1,str.length());
			byte[] compressArr = new byte[Integer.parseInt(len)];
			int i = 0;
			for(int j=0;j<cont.length();j++){
				char f0 = cont.charAt(j);
				if(f0 == 'z'){
					compressArr[i++] = (byte)(-(cont.charAt(++j)+30));
				}else if(f0 =='{'){
					compressArr[i++] = (byte)(cont.charAt(++j)+30);
				}else if(f0 =='\n'){
					compressArr[i++] = (byte)(cont.charAt(++j)-32);
				}else if(f0 =='}'){
					compressArr[i++] = (byte)(-(cont.charAt(++j)-32));
				}else if(f0 =='~'){
					compressArr[i++] = (byte)(-(cont.charAt(++j)-22));
				}else{
					compressArr[i++] = (byte)(f0-22);
				}
			}
			byte[] decompressArr =ZlibUtil.decompress(compressArr);
			return new String(decompressArr,CharsetConfig.UTF_8);
		} catch (UnsupportedEncodingException e) {
			log.error("",e);
		}
		return null;
	}