2023-11-13 21:10:04 +00:00
|
|
|
'use strict'
|
|
|
|
|
|
|
|
// Node has always utf-8
|
|
|
|
const utf8Decoder = new TextDecoder('utf-8')
|
|
|
|
const textDecoders = new Map([
|
|
|
|
['utf-8', utf8Decoder],
|
|
|
|
['utf8', utf8Decoder]
|
|
|
|
])
|
|
|
|
|
2023-11-17 13:22:28 +00:00
|
|
|
function decodeText (text, textEncoding, destEncoding) {
|
|
|
|
if (text) {
|
|
|
|
if (textDecoders.has(destEncoding)) {
|
2023-11-13 21:10:04 +00:00
|
|
|
try {
|
2023-11-17 13:22:28 +00:00
|
|
|
return textDecoders.get(destEncoding).decode(Buffer.from(text, textEncoding))
|
|
|
|
} catch (e) { }
|
|
|
|
} else {
|
|
|
|
try {
|
|
|
|
textDecoders.set(destEncoding, new TextDecoder(destEncoding))
|
|
|
|
return textDecoders.get(destEncoding).decode(Buffer.from(text, textEncoding))
|
2023-11-13 21:10:04 +00:00
|
|
|
} catch (e) { }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return text
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = decodeText
|