diff --git a/lib/public/util.php b/lib/public/util.php
index 6744c2d37bdde2535f20a7646d8a307a2ccd1a17..d69602f4507af9654c60cc54b95aeaae544fd284 100644
--- a/lib/public/util.php
+++ b/lib/public/util.php
@@ -355,6 +355,20 @@ class Util {
 	public static function sanitizeHTML( $value ) {
 		return(\OC_Util::sanitizeHTML($value));
 	}
+		
+	/**
+	 * @brief Public function to encode url parameters
+	 *
+	 * This function is used to encode path to file before output.
+	 * Encoding is done according to RFC 3986 with one exception:
+	 * Character '/' is preserved as is. 
+	 *
+	 * @param string $component part of URI to encode
+	 * @return string 
+	 */
+	public static function encodePath($component) {
+		return(\OC_Util::encodePath($component));
+	}
 
 	/**
 	* @brief Returns an array with all keys from input lowercased or uppercased. Numbered indices are left as is.
diff --git a/lib/util.php b/lib/util.php
index 8f5f79b6b097a5c802f8c13f9bd836c9badba51c..981b05b2b46130a60318203705059da1c9e5fc88 100755
--- a/lib/util.php
+++ b/lib/util.php
@@ -539,7 +539,22 @@ class OC_Util {
 		}
 		return $value;
 	}
-
+	
+	/**
+	 * @brief Public function to encode url parameters
+	 *
+	 * This function is used to encode path to file before output.
+	 * Encoding is done according to RFC 3986 with one exception:
+	 * Character '/' is preserved as is. 
+	 *
+	 * @param string $component part of URI to encode
+	 * @return string 
+	 */
+	public static function encodePath($component) {
+		$encoded = rawurlencode($component);
+		$encoded = str_replace('%2F', '/', $encoded);
+		return $encoded;
+	}
 
 	/**
 	 * Check if the htaccess file is working by creating a test file in the data directory and trying to access via http