Index: class-http.php
===================================================================
--- class-http.php	(revision 19830)
+++ class-http.php	(working copy)
@@ -1540,9 +1540,33 @@
 		if ( empty( $this->name ) || empty( $this->value ) )
 			return '';
 
-		return $this->name . '=' . urlencode( $this->value );
+		return $this->name . '=' . $this->encodeString( $this->value );
 	}
+        
+        /**
+         * URL encode non-printable characters only
+         * 
+         * @link http://stackoverflow.com/a/1969339
+         * 
+         * @param string $str
+         * @return string
+         */
+        public function encodeString( $str ) {
+            $chars = preg_split( '//', $str, -1, PREG_SPLIT_NO_EMPTY );
+            return implode( '', array_map( array( $this, 'encodeChar' ), $chars ) );
+        }
 
+        /**
+         * Encode only non-printable chars
+         * @param string $char
+         * @return string
+         */
+        public function encodeChar( $char ) {
+            if ( ctype_print( $char ) && !in_array( $char, array( '=', ';', ' ', '%', '+' ) ) )
+                return $char;
+            return urlencode( $char );
+        }
+
 	/**
 	 * Retrieve cookie header for usage in the rest of the WordPress HTTP API.
 	 *
