Java转译URL参数

Java转译URL参数

//调用
String input = URIEncoderUtil.encodeURIComponent(String input);
public class URIEncoderUtil {
     

	public static final String ALLOWED_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.!~*'()";

	/**
	 * Description:转译URL
	 * 
	 * @param input
	 * @return
	 * @see
	 */
	public static String encodeURIComponent(String input) {
     
		if (null == input || "".equals(input.trim())) {
     
			return input;
		}

		int l = input.length();
		StringBuilder o = new StringBuilder(l * 3);
		try {
     
			for (int i = 0; i < l; i++) {
     
				String e = input.substring(i, i + 1);
				if (ALLOWED_CHARS.indexOf(e) == -1) {
     
					byte[] b = e.getBytes("utf-8");
					o.append(getHex(b));
					continue;
				}
				o.append(e);
			}
			return o.toString();
		} catch (UnsupportedEncodingException e) {
     
			e.printStackTrace();
		}
		return input;
	}

	private static String getHex(byte buf[]) {
     
		StringBuilder o = new StringBuilder(buf.length * 3);
		for (int i = 0; i < buf.length; i++) {
     
			int n = (int) buf[i] & 0xff;
			o.append("%");
			if (n < 0x10) {
     
				o.append("0");
			}
			o.append(Long.toString(n, 16).toUpperCase());
		}
		return o.toString();
	}
}

你可能感兴趣的:(JAVA)