From 914870e3c930d99ecb4bba120f1b8d4d1747cc9d Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Thu, 21 Mar 2024 23:19:40 +0100 Subject: [PATCH] Add UTF-8 encoding to HTTP headers for text/plain --- Model/Entities/Entities.swift | 8 ++++++++ Model/Utilities/WebKitHandler.swift | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Model/Entities/Entities.swift b/Model/Entities/Entities.swift index 1dc04695..f996504b 100644 --- a/Model/Entities/Entities.swift +++ b/Model/Entities/Entities.swift @@ -146,6 +146,14 @@ struct URLContent { let start: UInt let end: UInt let size: UInt + + var httpContentType: String { + if mime == "text/plain" { + return "text/plain;charset=UTf-8" + } else { + return mime + } + } } final class ZimFile: NSManagedObject, Identifiable { diff --git a/Model/Utilities/WebKitHandler.swift b/Model/Utilities/WebKitHandler.swift index b28c57e2..a431c8b6 100644 --- a/Model/Utilities/WebKitHandler.swift +++ b/Model/Utilities/WebKitHandler.swift @@ -76,7 +76,7 @@ final class KiwixURLSchemeHandler: NSObject, WKURLSchemeHandler { } private func sendHTTP200Response(_ urlSchemeTask: WKURLSchemeTask, url: URL, content: URLContent) { - let headers = ["Content-Type": content.mime, "Content-Length": "\(content.size)"] + let headers = ["Content-Type": content.httpContentType, "Content-Length": "\(content.size)"] if let response = HTTPURLResponse(url: url, statusCode: 200, httpVersion: "HTTP/1.1", headerFields: headers) { guard isStartedFor(urlSchemeTask.hash) else { return } urlSchemeTask.didReceive(response)