diff --git a/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js b/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js
index 6e109445c3d328560fc123f6017872dff2f7aa44..189063d715a1c722d965c9fd2a6791c93426b4dc 100644
--- a/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js
+++ b/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js
@@ -252,6 +252,10 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie
                     }
                 }
 
+                if (goog.isDefAndNotNull(sName)) {
+                    sName = decodeURI(sName);
+                }
+
                 return sName;
             }
 
diff --git a/src/vitis/vas/rest/ws/vitis/FileDownloader.class.inc b/src/vitis/vas/rest/ws/vitis/FileDownloader.class.inc
index 3e7fc84f5336b07f6f368f18566dc11e0fb12747..7242f83a9ddec1bc86346c8286dacfe1f2a12323 100755
--- a/src/vitis/vas/rest/ws/vitis/FileDownloader.class.inc
+++ b/src/vitis/vas/rest/ws/vitis/FileDownloader.class.inc
@@ -176,7 +176,7 @@ class FileDownloader extends Vitis {
         if (file_exists($sFilePath)) {
             $sContentType = $this->getMime($sFilePath);
             header("Content-Type: " . $sContentType);
-            header("Content-disposition: attachment; filename=\"" . $sFileName . "\"");
+            header("Content-disposition: attachment; filename=\"" . rawurlencode($sFileName) . "\"");
             header('Content-Length: ' . filesize($sFilePath));
             if ($sContentType === "application/octet-stream") {
                 header("Content-Transfer-Encoding: Binary");