Skip to content

Commit 31b7b4f

Browse files
author
Benjamin Pasero
committed
encoding - map big5 auto detected properly to iconv
1 parent 63b4662 commit 31b7b4f

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

src/vs/base/node/encoding.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,12 @@ export function detectEncodingByBOM(file: string): TPromise<string> {
9595
}
9696

9797
const MINIMUM_THRESHOLD = 0.2;
98-
9998
const IGNORE_ENCODINGS = ['ascii', 'utf-8', 'utf-16', 'utf-32'];
100-
const MAPPED_ENCODINGS: { [name: string]: string } = {
101-
'ibm866': 'cp866'
102-
};
10399

104100
/**
105101
* Guesses the encoding from buffer.
106102
*/
107103
export async function guessEncodingByBuffer(buffer: NodeBuffer): TPromise<string> {
108-
109104
const jschardet = await import('jschardet');
110105

111106
jschardet.Constants.MINIMUM_THRESHOLD = MINIMUM_THRESHOLD;
@@ -126,9 +121,14 @@ export async function guessEncodingByBuffer(buffer: NodeBuffer): TPromise<string
126121
return toIconvLiteEncoding(guessed.encoding);
127122
}
128123

124+
const JSCHARDET_TO_ICONV_ENCODINGS: { [name: string]: string } = {
125+
'ibm866': 'cp866',
126+
'big5': 'cp950'
127+
};
128+
129129
function toIconvLiteEncoding(encodingName: string): string {
130130
const normalizedEncodingName = encodingName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
131-
const mapped = MAPPED_ENCODINGS[normalizedEncodingName];
131+
const mapped = JSCHARDET_TO_ICONV_ENCODINGS[normalizedEncodingName];
132132

133133
return mapped || normalizedEncodingName;
134134
}

0 commit comments

Comments
 (0)