Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package com.paypal.base.util;
 
 
 public final class PayPalURLEncoder {
 	static final String DIGITS = "0123456789abcdef";

 
Prevents this class from being instantiated.
	  private PayPalURLEncoder() { }

Encodes the given string s in a x-www-form-urlencoded string using the specified encoding scheme enc.

All characters except letters ('a'..'z', 'A'..'Z') and numbers ('0'..'9') and characters '_' are converted into their hexadecimal value prepended by '%'. For example: '#' -> %23. In addition, spaces are substituted by '+'

Parameters:
s the string to be encoded.
enc the encoding scheme to be used.
Returns:
the encoded string.
	public static String encode(String sString enc)  throws UnsupportedEncodingException {
	   if (s == null || enc == null) {
	          throw new NullPointerException();
	   }
	   // Guess a bit bigger for encoded form
	   StringBuffer buf = new StringBuffer(s.length() + 16);
	   int start = -1;
	   for (int i = 0; i < s.length(); i++) {
			   char ch = s.charAt(i);
		       if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')
		            || (ch >= '0' && ch <= '9') || " _".indexOf(ch) > -1) { //removed "." and "-" and "*"
		    	   if (start >= 0) {
		    		   convert(s.substring(starti), bufenc);
		                         start = -1;
		           }
		           if (ch != ' ') {
		        	   buf.append(ch);
		           } else {
		               buf.append('+');
		           }
		        } else {
		        	if (start < 0) {
		                start = i;
		            }
		        }
	       }
	       if (start >= 0) {
	           convert(s.substring(starts.length()), bufenc);
	       }
	       return buf.toString();
	  }
	private static void convert(String sStringBuffer bufString encthrows UnsupportedEncodingException {
	  	byte[] bytes = s.getBytes(enc);
			for (int j = 0; j < bytes.lengthj++) {
				buf.append('%');
				buf.append(.charAt((bytes[j] & 0xf0) >> 4));
				buf.append(.charAt(bytes[j] & 0xf));
			}
		}
New to GrepCode? Check out our FAQ X