diff --git a/src/main/java/org/olat/core/util/vfs/VFSMediaResource.java b/src/main/java/org/olat/core/util/vfs/VFSMediaResource.java
index 9a1ebec95bb8a1b5ed5b4cc22cf8b45518561d01..57af586c4266ac1ed22a0567324fb5779b03dac5 100644
--- a/src/main/java/org/olat/core/util/vfs/VFSMediaResource.java
+++ b/src/main/java/org/olat/core/util/vfs/VFSMediaResource.java
@@ -55,8 +55,16 @@ public class VFSMediaResource implements MediaResource {
 	public String getContentType() {
 		String mimeType;
 		if(downloadable) {
-			unknownMimeType = true;
-			mimeType = MIME_TYPE_FORCE_DOWNLOAD;
+			mimeType = WebappHelper.getMimeType(vfsLeaf.getName());
+			//html, xhtml and javascript are set to force download
+			if (mimeType == null || "text/html".equals(mimeType)
+					|| "application/xhtml+xml".equals(mimeType)
+					|| "application/javascript".equals(mimeType)) {
+				mimeType = MIME_TYPE_FORCE_DOWNLOAD;
+				unknownMimeType = true;
+			} else if (encoding != null) {
+				mimeType = mimeType + ";charset=" + encoding;
+			}
 		} else {
 			mimeType = WebappHelper.getMimeType(vfsLeaf.getName());
 			if (mimeType == null) {