Spaces:
Runtime error
Runtime error
/** | |
* @see https://encoding.spec.whatwg.org/#concept-encoding-get | |
* @param {string|undefined} label | |
*/ | |
function getEncoding (label) { | |
if (!label) { | |
return 'failure' | |
} | |
// 1. Remove any leading and trailing ASCII whitespace from label. | |
// 2. If label is an ASCII case-insensitive match for any of the | |
// labels listed in the table below, then return the | |
// corresponding encoding; otherwise return failure. | |
switch (label.trim().toLowerCase()) { | |
case 'unicode-1-1-utf-8': | |
case 'unicode11utf8': | |
case 'unicode20utf8': | |
case 'utf-8': | |
case 'utf8': | |
case 'x-unicode20utf8': | |
return 'UTF-8' | |
case '866': | |
case 'cp866': | |
case 'csibm866': | |
case 'ibm866': | |
return 'IBM866' | |
case 'csisolatin2': | |
case 'iso-8859-2': | |
case 'iso-ir-101': | |
case 'iso8859-2': | |
case 'iso88592': | |
case 'iso_8859-2': | |
case 'iso_8859-2:1987': | |
case 'l2': | |
case 'latin2': | |
return 'ISO-8859-2' | |
case 'csisolatin3': | |
case 'iso-8859-3': | |
case 'iso-ir-109': | |
case 'iso8859-3': | |
case 'iso88593': | |
case 'iso_8859-3': | |
case 'iso_8859-3:1988': | |
case 'l3': | |
case 'latin3': | |
return 'ISO-8859-3' | |
case 'csisolatin4': | |
case 'iso-8859-4': | |
case 'iso-ir-110': | |
case 'iso8859-4': | |
case 'iso88594': | |
case 'iso_8859-4': | |
case 'iso_8859-4:1988': | |
case 'l4': | |
case 'latin4': | |
return 'ISO-8859-4' | |
case 'csisolatincyrillic': | |
case 'cyrillic': | |
case 'iso-8859-5': | |
case 'iso-ir-144': | |
case 'iso8859-5': | |
case 'iso88595': | |
case 'iso_8859-5': | |
case 'iso_8859-5:1988': | |
return 'ISO-8859-5' | |
case 'arabic': | |
case 'asmo-708': | |
case 'csiso88596e': | |
case 'csiso88596i': | |
case 'csisolatinarabic': | |
case 'ecma-114': | |
case 'iso-8859-6': | |
case 'iso-8859-6-e': | |
case 'iso-8859-6-i': | |
case 'iso-ir-127': | |
case 'iso8859-6': | |
case 'iso88596': | |
case 'iso_8859-6': | |
case 'iso_8859-6:1987': | |
return 'ISO-8859-6' | |
case 'csisolatingreek': | |
case 'ecma-118': | |
case 'elot_928': | |
case 'greek': | |
case 'greek8': | |
case 'iso-8859-7': | |
case 'iso-ir-126': | |
case 'iso8859-7': | |
case 'iso88597': | |
case 'iso_8859-7': | |
case 'iso_8859-7:1987': | |
case 'sun_eu_greek': | |
return 'ISO-8859-7' | |
case 'csiso88598e': | |
case 'csisolatinhebrew': | |
case 'hebrew': | |
case 'iso-8859-8': | |
case 'iso-8859-8-e': | |
case 'iso-ir-138': | |
case 'iso8859-8': | |
case 'iso88598': | |
case 'iso_8859-8': | |
case 'iso_8859-8:1988': | |
case 'visual': | |
return 'ISO-8859-8' | |
case 'csiso88598i': | |
case 'iso-8859-8-i': | |
case 'logical': | |
return 'ISO-8859-8-I' | |
case 'csisolatin6': | |
case 'iso-8859-10': | |
case 'iso-ir-157': | |
case 'iso8859-10': | |
case 'iso885910': | |
case 'l6': | |
case 'latin6': | |
return 'ISO-8859-10' | |
case 'iso-8859-13': | |
case 'iso8859-13': | |
case 'iso885913': | |
return 'ISO-8859-13' | |
case 'iso-8859-14': | |
case 'iso8859-14': | |
case 'iso885914': | |
return 'ISO-8859-14' | |
case 'csisolatin9': | |
case 'iso-8859-15': | |
case 'iso8859-15': | |
case 'iso885915': | |
case 'iso_8859-15': | |
case 'l9': | |
return 'ISO-8859-15' | |
case 'iso-8859-16': | |
return 'ISO-8859-16' | |
case 'cskoi8r': | |
case 'koi': | |
case 'koi8': | |
case 'koi8-r': | |
case 'koi8_r': | |
return 'KOI8-R' | |
case 'koi8-ru': | |
case 'koi8-u': | |
return 'KOI8-U' | |
case 'csmacintosh': | |
case 'mac': | |
case 'macintosh': | |
case 'x-mac-roman': | |
return 'macintosh' | |
case 'iso-8859-11': | |
case 'iso8859-11': | |
case 'iso885911': | |
case 'tis-620': | |
case 'windows-874': | |
return 'windows-874' | |
case 'cp1250': | |
case 'windows-1250': | |
case 'x-cp1250': | |
return 'windows-1250' | |
case 'cp1251': | |
case 'windows-1251': | |
case 'x-cp1251': | |
return 'windows-1251' | |
case 'ansi_x3.4-1968': | |
case 'ascii': | |
case 'cp1252': | |
case 'cp819': | |
case 'csisolatin1': | |
case 'ibm819': | |
case 'iso-8859-1': | |
case 'iso-ir-100': | |
case 'iso8859-1': | |
case 'iso88591': | |
case 'iso_8859-1': | |
case 'iso_8859-1:1987': | |
case 'l1': | |
case 'latin1': | |
case 'us-ascii': | |
case 'windows-1252': | |
case 'x-cp1252': | |
return 'windows-1252' | |
case 'cp1253': | |
case 'windows-1253': | |
case 'x-cp1253': | |
return 'windows-1253' | |
case 'cp1254': | |
case 'csisolatin5': | |
case 'iso-8859-9': | |
case 'iso-ir-148': | |
case 'iso8859-9': | |
case 'iso88599': | |
case 'iso_8859-9': | |
case 'iso_8859-9:1989': | |
case 'l5': | |
case 'latin5': | |
case 'windows-1254': | |
case 'x-cp1254': | |
return 'windows-1254' | |
case 'cp1255': | |
case 'windows-1255': | |
case 'x-cp1255': | |
return 'windows-1255' | |
case 'cp1256': | |
case 'windows-1256': | |
case 'x-cp1256': | |
return 'windows-1256' | |
case 'cp1257': | |
case 'windows-1257': | |
case 'x-cp1257': | |
return 'windows-1257' | |
case 'cp1258': | |
case 'windows-1258': | |
case 'x-cp1258': | |
return 'windows-1258' | |
case 'x-mac-cyrillic': | |
case 'x-mac-ukrainian': | |
return 'x-mac-cyrillic' | |
case 'chinese': | |
case 'csgb2312': | |
case 'csiso58gb231280': | |
case 'gb2312': | |
case 'gb_2312': | |
case 'gb_2312-80': | |
case 'gbk': | |
case 'iso-ir-58': | |
case 'x-gbk': | |
return 'GBK' | |
case 'gb18030': | |
return 'gb18030' | |
case 'big5': | |
case 'big5-hkscs': | |
case 'cn-big5': | |
case 'csbig5': | |
case 'x-x-big5': | |
return 'Big5' | |
case 'cseucpkdfmtjapanese': | |
case 'euc-jp': | |
case 'x-euc-jp': | |
return 'EUC-JP' | |
case 'csiso2022jp': | |
case 'iso-2022-jp': | |
return 'ISO-2022-JP' | |
case 'csshiftjis': | |
case 'ms932': | |
case 'ms_kanji': | |
case 'shift-jis': | |
case 'shift_jis': | |
case 'sjis': | |
case 'windows-31j': | |
case 'x-sjis': | |
return 'Shift_JIS' | |
case 'cseuckr': | |
case 'csksc56011987': | |
case 'euc-kr': | |
case 'iso-ir-149': | |
case 'korean': | |
case 'ks_c_5601-1987': | |
case 'ks_c_5601-1989': | |
case 'ksc5601': | |
case 'ksc_5601': | |
case 'windows-949': | |
return 'EUC-KR' | |
case 'csiso2022kr': | |
case 'hz-gb-2312': | |
case 'iso-2022-cn': | |
case 'iso-2022-cn-ext': | |
case 'iso-2022-kr': | |
case 'replacement': | |
return 'replacement' | |
case 'unicodefffe': | |
case 'utf-16be': | |
return 'UTF-16BE' | |
case 'csunicode': | |
case 'iso-10646-ucs-2': | |
case 'ucs-2': | |
case 'unicode': | |
case 'unicodefeff': | |
case 'utf-16': | |
case 'utf-16le': | |
return 'UTF-16LE' | |
case 'x-user-defined': | |
return 'x-user-defined' | |
default: return 'failure' | |
} | |
} | |
module.exports = { | |
getEncoding | |
} | |