From 56d3f1137664006f9bf128558e645e3194bf8b53 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 29 Mar 2017 06:19:31 -0700 Subject: [PATCH] encoding normalization (reported in #23322) --- src/vs/base/node/encoding.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/vs/base/node/encoding.ts b/src/vs/base/node/encoding.ts index 4c06f835da8..281240a5a2a 100644 --- a/src/vs/base/node/encoding.ts +++ b/src/vs/base/node/encoding.ts @@ -99,6 +99,9 @@ const MINIMUM_THRESHOLD = 0.2; // TODO@Ben Decide how much this should be. jschardet.Constants.MINIMUM_THRESHOLD = MINIMUM_THRESHOLD; const IGNORE_ENCODINGS = ['ascii', 'utf-8', 'utf-16', 'utf-32']; +const MAPPED_ENCODINGS = { + 'ibm866': 'cp866' +}; /** * Guesses the encoding from buffer. @@ -117,11 +120,14 @@ export function guessEncodingByBuffer(buffer: NodeBuffer): string { return null; } - return lowerCaseWithoutNonAlphaNumeric(guessed.encoding); + return toIconvLiteEncoding(guessed.encoding); } -function lowerCaseWithoutNonAlphaNumeric(encodingName: string): string { - return encodingName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase(); +function toIconvLiteEncoding(encodingName: string): string { + const normalizedEncodingName = encodingName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase(); + const mapped = MAPPED_ENCODINGS[normalizedEncodingName]; + + return mapped || normalizedEncodingName; } /** -- GitLab