From 4b4f7bd697e918791ee17c09920e6bd3640e8a91 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 17 Mar 2023 13:39:50 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=B4=D0=B8=D1=80=D0=BE=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/fb2/Fb2Helper.js | 2 +- server/core/fb2/textUtils.js | 13 ++----------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/server/core/fb2/Fb2Helper.js b/server/core/fb2/Fb2Helper.js index e2b1de3..837affb 100644 --- a/server/core/fb2/Fb2Helper.js +++ b/server/core/fb2/Fb2Helper.js @@ -35,7 +35,7 @@ class Fb2Helper { if (m) { let enc = m[1].toLowerCase(); if (enc != 'utf-8') { - //enc может не соответсвовать реальной кодировке файла, поэтому: + //если кодировка не определена в getEncoding, используем enc if (encoding.indexOf('ISO-8859') >= 0) { encoding = enc; } diff --git a/server/core/fb2/textUtils.js b/server/core/fb2/textUtils.js index ef05606..c3b2f40 100644 --- a/server/core/fb2/textUtils.js +++ b/server/core/fb2/textUtils.js @@ -4,7 +4,7 @@ function getEncoding(buf) { let selected = getEncodingLite(buf); if (selected == 'ISO-8859-5' && buf.length > 10) { - const charsetAll = chardet.analyse(buf.slice(0, 20000)); + const charsetAll = chardet.analyse(buf.slice(0, 100000)); for (const charset of charsetAll) { if (charset.name.indexOf('ISO-8859') < 0) { selected = charset.name; @@ -39,9 +39,7 @@ function getEncodingLite(buf, returnAll) { 'u': 0, }; - const len = buf.length; - const blockSize = (len > 5*3000 ? 3000 : len); - let counter = 0; + const len = (buf.length > 100000 ? 100000 : buf.length); let i = 0; let totalChecked = 0; while (i < len) { @@ -76,13 +74,6 @@ function getEncodingLite(buf, returnAll) { if (char > 207 && char < 240) charsets['i'] += lowerCase; if (char > 175 && char < 208) charsets['i'] += upperCase; } - - counter++; - - if (counter > blockSize) { - counter = 0; - i += Math.round(len/2 - 2*blockSize); - } } let sorted = Object.keys(charsets).map(function(key) {