From 367a9765a07ac38079a3c911ffd3ce2d71c1471f Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sat, 9 Feb 2019 16:01:58 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B1=D0=B0=D0=B3=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/BookConverter/getEncoding.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/server/core/BookConverter/getEncoding.js b/server/core/BookConverter/getEncoding.js index 186c48b8..d5533bc8 100644 --- a/server/core/BookConverter/getEncoding.js +++ b/server/core/BookConverter/getEncoding.js @@ -1,4 +1,4 @@ -function getEncoding(str) { +function getEncoding(buf) { const lowerCase = 3; const upperCase = 1; @@ -18,17 +18,16 @@ function getEncoding(str) { 'm': 0 }; - const len = str.len; + const len = buf.length; const blockSize = (len > 5*3000 ? 3000 : len); let counter = 0; let i = 0; while (i < len) { - const char = str.charCodeAt(i); - + const char = buf[i]; + i++; //non-russian characters if (char < 128 || char > 256) continue; - //CP866 if ((char > 159 && char < 176) || (char > 223 && char < 242)) charsets['d'] += lowerCase; if ((char > 127 && char < 160)) charsets['d'] += upperCase; @@ -55,14 +54,13 @@ function getEncoding(str) { counter = 0; i += Math.round(len/2 - 2*blockSize); } - i++; } let sorted = Object.keys(charsets).map(function(key) { return { codePage: codePage[key], c: charsets[key] }; }); - sorted.sort((a, b) => a.c - b.c); + sorted.sort((a, b) => b.c - a.c); return sorted[0].codePage; }