From 35471fd09890f41bb224c15a4f34be7e38a51bd1 Mon Sep 17 00:00:00 2001 From: zefie Date: Fri, 11 Feb 2022 00:28:29 -0500 Subject: [PATCH] new module (iconv-lite) to attempt char encodings --- .../ServiceVault/wtv-mail/readmail.js | 9 ++++- zefie_wtvp_minisrv/app.js | 1 + zefie_wtvp_minisrv/package-lock.json | 38 +++++++++++++++---- zefie_wtvp_minisrv/package.json | 1 + 4 files changed, 39 insertions(+), 10 deletions(-) diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js index 186447f3..66a29c0c 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js @@ -256,7 +256,10 @@ ${html_entities.encode(message.to_addr)} ${(html_entities.encode(message.to_name Subject: - +`; + + if (typeof message.subject == "object") message.subject = new Buffer.from(message.subject).toString('latin1'); + data += ` ${html_entities.encode((message.subject) ? message.subject : '(No subject)')} @@ -289,7 +292,9 @@ ${html_entities.encode((message.subject) ? message.subject : '(No subject)')} } }); } - if (typeof message.body == "object") message.body = new Buffer.from(message.body).toString('latin1'); + if (typeof message.body == "object") { + message.body = iconv.decode(Buffer.from(message.body), 'ISO-8859-1'); + } data += ` ${html_entities.encode(message.body).replace(/\n/gi, "
").replace(/\r/gi, "").replace(/'/gi, "'")}
diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 1a4e5e1c..c36d0c06 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -16,6 +16,7 @@ const WTVLzpf = require('./WTVLzpf.js'); const WTVClientCapabilities = require('./WTVClientCapabilities.js'); const WTVClientSessionData = require('./WTVClientSessionData.js'); const WTVMime = require("./WTVMime.js"); +const iconv = require('iconv-lite'); const { WTVShared, clientShowAlert } = require("./WTVShared.js"); process diff --git a/zefie_wtvp_minisrv/package-lock.json b/zefie_wtvp_minisrv/package-lock.json index 85982305..b829d1c8 100644 --- a/zefie_wtvp_minisrv/package-lock.json +++ b/zefie_wtvp_minisrv/package-lock.json @@ -13,6 +13,7 @@ "easy-crc": "0.0.2", "endianness": "^8.0.2", "html-entities": "^2.3.2", + "iconv-lite": "^0.6.3", "mime-types": "^2.1.33", "proxy-agent": "^5.0.0", "socks-proxy-agent": "^6.1.1", @@ -290,11 +291,11 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -494,6 +495,17 @@ "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -853,11 +865,11 @@ } }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "inherits": { @@ -1020,6 +1032,16 @@ "http-errors": "1.7.3", "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } } }, "readable-stream": { diff --git a/zefie_wtvp_minisrv/package.json b/zefie_wtvp_minisrv/package.json index 1e937f43..efb5cfdd 100644 --- a/zefie_wtvp_minisrv/package.json +++ b/zefie_wtvp_minisrv/package.json @@ -31,6 +31,7 @@ "easy-crc": "0.0.2", "endianness": "^8.0.2", "html-entities": "^2.3.2", + "iconv-lite": "^0.6.3", "mime-types": "^2.1.33", "proxy-agent": "^5.0.0", "socks-proxy-agent": "^6.1.1",