jodd-core/src/main/java/jodd/net/URLCoder.java
private static byte[] encodeBytes(final byte[] source, final URIPart uriPart) {
		ByteArrayOutputStream bos = new ByteArrayOutputStream(source.length);
		for (byte b : source) {
			if (b < 0) {
				b += 256;
			}
			if (uriPart.isValid((char) b)) {
				bos.write(b);
			} else {
				bos.write('%');
				char hex1 = Character.toUpperCase(Character.forDigit((b >> 4) & 0xF, 16));
				char hex2 = Character.toUpperCase(Character.forDigit(b & 0xF, 16));
				bos.write(hex1);
				bos.write(hex2);
			}
		}
		return bos.toByteArray();
	}
private static byte[] encodeBytes(final byte[] source, final URIPart uriPart) {
		ByteArrayOutputStream bos = new ByteArrayOutputStream(source.length);
		for (byte b : source) {
			if (b < 0) {
				b += 256;
			}
			if (uriPart.isValid((char) b)) {
				bos.write(b);
			} else {
				bos.write('%');
				char hex1 = Character.toUpperCase(Character.forDigit((b >> 4) & 0xF, 16));
				char hex2 = Character.toUpperCase(Character.forDigit(b & 0xF, 16));
				bos.write(hex1);
				bos.write(hex2);
			}
		}
		return bos.toByteArray();
	}
private static byte [ ] encodeBytes ( final byte [ ] source , final URIPart uriPart ) { ByteArrayOutputStream bos = new ByteArrayOutputStream ( source . length ) ; for ( byte b : source ) { if ( b < 0 ) { b += 256 ; } if ( uriPart . isValid ( ( char ) b ) ) { bos . write ( b ) ; } else { bos . write ( ' ' ) ; char hex1 = Character . toUpperCase ( Character . forDigit ( ( b >> 4 ) & 0xF , 16 ) ) ; char hex2 = Character . toUpperCase ( Character . forDigit ( b & 0xF , 16 ) ) ; bos . write ( hex1 ) ; bos . write ( hex2 ) ; } } return bos . toByteArray ( ) ; }
Encodes byte array using allowed characters from {@link URIPart}.
Encodes byte array using allowed characters from {