public static String binaryUrlencode(byte[] bytes) { return binaryUrlencode(bytes, 0, bytes.length); } public static String binaryUrlencode(byte[] bytes, int ofs, int len) { StringBuilder stringBuilder = new StringBuilder(len*3); for (int i = 0; i < len; i++) { stringBuilder.append("%"); String s = "0" + Integer.toHexString(bytes[ofs+i]); stringBuilder.append(s.substring(s.length()-2, s.length())); } return stringBuilder.toString().toUpperCase(); }