github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/pingcap/tidb/util/charset/encoding_table.go (about) 1 // Copyright 2015 PingCAP, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // See the License for the specific language governing permissions and 12 // limitations under the License. 13 14 package charset 15 16 import ( 17 "strings" 18 19 "github.com/insionng/yougam/libraries/x/text/encoding" 20 "github.com/insionng/yougam/libraries/x/text/encoding/charmap" 21 "github.com/insionng/yougam/libraries/x/text/encoding/japanese" 22 "github.com/insionng/yougam/libraries/x/text/encoding/korean" 23 "github.com/insionng/yougam/libraries/x/text/encoding/simplifiedchinese" 24 "github.com/insionng/yougam/libraries/x/text/encoding/traditionalchinese" 25 "github.com/insionng/yougam/libraries/x/text/encoding/unicode" 26 ) 27 28 // Lookup returns the encoding with the specified label, and its canonical 29 // name. It returns nil and the empty string if label is not one of the 30 // standard encodings for HTML. Matching is case-insensitive and ignores 31 // leading and trailing whitespace. 32 func Lookup(label string) (e encoding.Encoding, name string) { 33 label = strings.ToLower(strings.Trim(label, "\t\n\r\f ")) 34 enc := encodings[label] 35 return enc.e, enc.name 36 } 37 38 var encodings = map[string]struct { 39 e encoding.Encoding 40 name string 41 }{ 42 "unicode-1-1-utf-8": {encoding.Nop, "utf-8"}, 43 "utf-8": {encoding.Nop, "utf-8"}, 44 "utf8": {encoding.Nop, "utf-8"}, 45 "866": {charmap.CodePage866, "ibm866"}, 46 "cp866": {charmap.CodePage866, "ibm866"}, 47 "csibm866": {charmap.CodePage866, "ibm866"}, 48 "ibm866": {charmap.CodePage866, "ibm866"}, 49 "csisolatin2": {charmap.ISO8859_2, "iso-8859-2"}, 50 "iso-8859-2": {charmap.ISO8859_2, "iso-8859-2"}, 51 "iso-ir-101": {charmap.ISO8859_2, "iso-8859-2"}, 52 "iso8859-2": {charmap.ISO8859_2, "iso-8859-2"}, 53 "iso88592": {charmap.ISO8859_2, "iso-8859-2"}, 54 "iso_8859-2": {charmap.ISO8859_2, "iso-8859-2"}, 55 "iso_8859-2:1987": {charmap.ISO8859_2, "iso-8859-2"}, 56 "l2": {charmap.ISO8859_2, "iso-8859-2"}, 57 "latin2": {charmap.ISO8859_2, "iso-8859-2"}, 58 "csisolatin3": {charmap.ISO8859_3, "iso-8859-3"}, 59 "iso-8859-3": {charmap.ISO8859_3, "iso-8859-3"}, 60 "iso-ir-109": {charmap.ISO8859_3, "iso-8859-3"}, 61 "iso8859-3": {charmap.ISO8859_3, "iso-8859-3"}, 62 "iso88593": {charmap.ISO8859_3, "iso-8859-3"}, 63 "iso_8859-3": {charmap.ISO8859_3, "iso-8859-3"}, 64 "iso_8859-3:1988": {charmap.ISO8859_3, "iso-8859-3"}, 65 "l3": {charmap.ISO8859_3, "iso-8859-3"}, 66 "latin3": {charmap.ISO8859_3, "iso-8859-3"}, 67 "csisolatin4": {charmap.ISO8859_4, "iso-8859-4"}, 68 "iso-8859-4": {charmap.ISO8859_4, "iso-8859-4"}, 69 "iso-ir-110": {charmap.ISO8859_4, "iso-8859-4"}, 70 "iso8859-4": {charmap.ISO8859_4, "iso-8859-4"}, 71 "iso88594": {charmap.ISO8859_4, "iso-8859-4"}, 72 "iso_8859-4": {charmap.ISO8859_4, "iso-8859-4"}, 73 "iso_8859-4:1988": {charmap.ISO8859_4, "iso-8859-4"}, 74 "l4": {charmap.ISO8859_4, "iso-8859-4"}, 75 "latin4": {charmap.ISO8859_4, "iso-8859-4"}, 76 "csisolatincyrillic": {charmap.ISO8859_5, "iso-8859-5"}, 77 "cyrillic": {charmap.ISO8859_5, "iso-8859-5"}, 78 "iso-8859-5": {charmap.ISO8859_5, "iso-8859-5"}, 79 "iso-ir-144": {charmap.ISO8859_5, "iso-8859-5"}, 80 "iso8859-5": {charmap.ISO8859_5, "iso-8859-5"}, 81 "iso88595": {charmap.ISO8859_5, "iso-8859-5"}, 82 "iso_8859-5": {charmap.ISO8859_5, "iso-8859-5"}, 83 "iso_8859-5:1988": {charmap.ISO8859_5, "iso-8859-5"}, 84 "arabic": {charmap.ISO8859_6, "iso-8859-6"}, 85 "asmo-708": {charmap.ISO8859_6, "iso-8859-6"}, 86 "csiso88596e": {charmap.ISO8859_6, "iso-8859-6"}, 87 "csiso88596i": {charmap.ISO8859_6, "iso-8859-6"}, 88 "csisolatinarabic": {charmap.ISO8859_6, "iso-8859-6"}, 89 "ecma-114": {charmap.ISO8859_6, "iso-8859-6"}, 90 "iso-8859-6": {charmap.ISO8859_6, "iso-8859-6"}, 91 "iso-8859-6-e": {charmap.ISO8859_6, "iso-8859-6"}, 92 "iso-8859-6-i": {charmap.ISO8859_6, "iso-8859-6"}, 93 "iso-ir-127": {charmap.ISO8859_6, "iso-8859-6"}, 94 "iso8859-6": {charmap.ISO8859_6, "iso-8859-6"}, 95 "iso88596": {charmap.ISO8859_6, "iso-8859-6"}, 96 "iso_8859-6": {charmap.ISO8859_6, "iso-8859-6"}, 97 "iso_8859-6:1987": {charmap.ISO8859_6, "iso-8859-6"}, 98 "csisolatingreek": {charmap.ISO8859_7, "iso-8859-7"}, 99 "ecma-118": {charmap.ISO8859_7, "iso-8859-7"}, 100 "elot_928": {charmap.ISO8859_7, "iso-8859-7"}, 101 "greek": {charmap.ISO8859_7, "iso-8859-7"}, 102 "greek8": {charmap.ISO8859_7, "iso-8859-7"}, 103 "iso-8859-7": {charmap.ISO8859_7, "iso-8859-7"}, 104 "iso-ir-126": {charmap.ISO8859_7, "iso-8859-7"}, 105 "iso8859-7": {charmap.ISO8859_7, "iso-8859-7"}, 106 "iso88597": {charmap.ISO8859_7, "iso-8859-7"}, 107 "iso_8859-7": {charmap.ISO8859_7, "iso-8859-7"}, 108 "iso_8859-7:1987": {charmap.ISO8859_7, "iso-8859-7"}, 109 "sun_eu_greek": {charmap.ISO8859_7, "iso-8859-7"}, 110 "csiso88598e": {charmap.ISO8859_8, "iso-8859-8"}, 111 "csisolatinhebrew": {charmap.ISO8859_8, "iso-8859-8"}, 112 "hebrew": {charmap.ISO8859_8, "iso-8859-8"}, 113 "iso-8859-8": {charmap.ISO8859_8, "iso-8859-8"}, 114 "iso-8859-8-e": {charmap.ISO8859_8, "iso-8859-8"}, 115 "iso-ir-138": {charmap.ISO8859_8, "iso-8859-8"}, 116 "iso8859-8": {charmap.ISO8859_8, "iso-8859-8"}, 117 "iso88598": {charmap.ISO8859_8, "iso-8859-8"}, 118 "iso_8859-8": {charmap.ISO8859_8, "iso-8859-8"}, 119 "iso_8859-8:1988": {charmap.ISO8859_8, "iso-8859-8"}, 120 "visual": {charmap.ISO8859_8, "iso-8859-8"}, 121 "csiso88598i": {charmap.ISO8859_8, "iso-8859-8-i"}, 122 "iso-8859-8-i": {charmap.ISO8859_8, "iso-8859-8-i"}, 123 "logical": {charmap.ISO8859_8, "iso-8859-8-i"}, 124 "csisolatin6": {charmap.ISO8859_10, "iso-8859-10"}, 125 "iso-8859-10": {charmap.ISO8859_10, "iso-8859-10"}, 126 "iso-ir-157": {charmap.ISO8859_10, "iso-8859-10"}, 127 "iso8859-10": {charmap.ISO8859_10, "iso-8859-10"}, 128 "iso885910": {charmap.ISO8859_10, "iso-8859-10"}, 129 "l6": {charmap.ISO8859_10, "iso-8859-10"}, 130 "latin6": {charmap.ISO8859_10, "iso-8859-10"}, 131 "iso-8859-13": {charmap.ISO8859_13, "iso-8859-13"}, 132 "iso8859-13": {charmap.ISO8859_13, "iso-8859-13"}, 133 "iso885913": {charmap.ISO8859_13, "iso-8859-13"}, 134 "iso-8859-14": {charmap.ISO8859_14, "iso-8859-14"}, 135 "iso8859-14": {charmap.ISO8859_14, "iso-8859-14"}, 136 "iso885914": {charmap.ISO8859_14, "iso-8859-14"}, 137 "csisolatin9": {charmap.ISO8859_15, "iso-8859-15"}, 138 "iso-8859-15": {charmap.ISO8859_15, "iso-8859-15"}, 139 "iso8859-15": {charmap.ISO8859_15, "iso-8859-15"}, 140 "iso885915": {charmap.ISO8859_15, "iso-8859-15"}, 141 "iso_8859-15": {charmap.ISO8859_15, "iso-8859-15"}, 142 "l9": {charmap.ISO8859_15, "iso-8859-15"}, 143 "iso-8859-16": {charmap.ISO8859_16, "iso-8859-16"}, 144 "cskoi8r": {charmap.KOI8R, "koi8-r"}, 145 "koi": {charmap.KOI8R, "koi8-r"}, 146 "koi8": {charmap.KOI8R, "koi8-r"}, 147 "koi8-r": {charmap.KOI8R, "koi8-r"}, 148 "koi8_r": {charmap.KOI8R, "koi8-r"}, 149 "koi8-u": {charmap.KOI8U, "koi8-u"}, 150 "csmacintosh": {charmap.Macintosh, "macintosh"}, 151 "mac": {charmap.Macintosh, "macintosh"}, 152 "macintosh": {charmap.Macintosh, "macintosh"}, 153 "x-mac-roman": {charmap.Macintosh, "macintosh"}, 154 "dos-874": {charmap.Windows874, "windows-874"}, 155 "iso-8859-11": {charmap.Windows874, "windows-874"}, 156 "iso8859-11": {charmap.Windows874, "windows-874"}, 157 "iso885911": {charmap.Windows874, "windows-874"}, 158 "tis-620": {charmap.Windows874, "windows-874"}, 159 "windows-874": {charmap.Windows874, "windows-874"}, 160 "cp1250": {charmap.Windows1250, "windows-1250"}, 161 "windows-1250": {charmap.Windows1250, "windows-1250"}, 162 "x-cp1250": {charmap.Windows1250, "windows-1250"}, 163 "cp1251": {charmap.Windows1251, "windows-1251"}, 164 "windows-1251": {charmap.Windows1251, "windows-1251"}, 165 "x-cp1251": {charmap.Windows1251, "windows-1251"}, 166 "ansi_x3.4-1968": {charmap.Windows1252, "windows-1252"}, 167 "ascii": {charmap.Windows1252, "windows-1252"}, 168 "cp1252": {charmap.Windows1252, "windows-1252"}, 169 "cp819": {charmap.Windows1252, "windows-1252"}, 170 "csisolatin1": {charmap.Windows1252, "windows-1252"}, 171 "ibm819": {charmap.Windows1252, "windows-1252"}, 172 "iso-8859-1": {charmap.Windows1252, "windows-1252"}, 173 "iso-ir-100": {charmap.Windows1252, "windows-1252"}, 174 "iso8859-1": {charmap.Windows1252, "windows-1252"}, 175 "iso88591": {charmap.Windows1252, "windows-1252"}, 176 "iso_8859-1": {charmap.Windows1252, "windows-1252"}, 177 "iso_8859-1:1987": {charmap.Windows1252, "windows-1252"}, 178 "l1": {charmap.Windows1252, "windows-1252"}, 179 "latin1": {charmap.Windows1252, "windows-1252"}, 180 "us-ascii": {charmap.Windows1252, "windows-1252"}, 181 "windows-1252": {charmap.Windows1252, "windows-1252"}, 182 "x-cp1252": {charmap.Windows1252, "windows-1252"}, 183 "cp1253": {charmap.Windows1253, "windows-1253"}, 184 "windows-1253": {charmap.Windows1253, "windows-1253"}, 185 "x-cp1253": {charmap.Windows1253, "windows-1253"}, 186 "cp1254": {charmap.Windows1254, "windows-1254"}, 187 "csisolatin5": {charmap.Windows1254, "windows-1254"}, 188 "iso-8859-9": {charmap.Windows1254, "windows-1254"}, 189 "iso-ir-148": {charmap.Windows1254, "windows-1254"}, 190 "iso8859-9": {charmap.Windows1254, "windows-1254"}, 191 "iso88599": {charmap.Windows1254, "windows-1254"}, 192 "iso_8859-9": {charmap.Windows1254, "windows-1254"}, 193 "iso_8859-9:1989": {charmap.Windows1254, "windows-1254"}, 194 "l5": {charmap.Windows1254, "windows-1254"}, 195 "latin5": {charmap.Windows1254, "windows-1254"}, 196 "windows-1254": {charmap.Windows1254, "windows-1254"}, 197 "x-cp1254": {charmap.Windows1254, "windows-1254"}, 198 "cp1255": {charmap.Windows1255, "windows-1255"}, 199 "windows-1255": {charmap.Windows1255, "windows-1255"}, 200 "x-cp1255": {charmap.Windows1255, "windows-1255"}, 201 "cp1256": {charmap.Windows1256, "windows-1256"}, 202 "windows-1256": {charmap.Windows1256, "windows-1256"}, 203 "x-cp1256": {charmap.Windows1256, "windows-1256"}, 204 "cp1257": {charmap.Windows1257, "windows-1257"}, 205 "windows-1257": {charmap.Windows1257, "windows-1257"}, 206 "x-cp1257": {charmap.Windows1257, "windows-1257"}, 207 "cp1258": {charmap.Windows1258, "windows-1258"}, 208 "windows-1258": {charmap.Windows1258, "windows-1258"}, 209 "x-cp1258": {charmap.Windows1258, "windows-1258"}, 210 "x-mac-cyrillic": {charmap.MacintoshCyrillic, "x-mac-cyrillic"}, 211 "x-mac-ukrainian": {charmap.MacintoshCyrillic, "x-mac-cyrillic"}, 212 "chinese": {simplifiedchinese.GBK, "gbk"}, 213 "csgb2312": {simplifiedchinese.GBK, "gbk"}, 214 "csiso58gb231280": {simplifiedchinese.GBK, "gbk"}, 215 "gb2312": {simplifiedchinese.GBK, "gbk"}, 216 "gb_2312": {simplifiedchinese.GBK, "gbk"}, 217 "gb_2312-80": {simplifiedchinese.GBK, "gbk"}, 218 "gbk": {simplifiedchinese.GBK, "gbk"}, 219 "iso-ir-58": {simplifiedchinese.GBK, "gbk"}, 220 "x-gbk": {simplifiedchinese.GBK, "gbk"}, 221 "gb18030": {simplifiedchinese.GB18030, "gb18030"}, 222 "hz-gb-2312": {simplifiedchinese.HZGB2312, "hz-gb-2312"}, 223 "big5": {traditionalchinese.Big5, "big5"}, 224 "big5-hkscs": {traditionalchinese.Big5, "big5"}, 225 "cn-big5": {traditionalchinese.Big5, "big5"}, 226 "csbig5": {traditionalchinese.Big5, "big5"}, 227 "x-x-big5": {traditionalchinese.Big5, "big5"}, 228 "cseucpkdfmtjapanese": {japanese.EUCJP, "euc-jp"}, 229 "euc-jp": {japanese.EUCJP, "euc-jp"}, 230 "x-euc-jp": {japanese.EUCJP, "euc-jp"}, 231 "csiso2022jp": {japanese.ISO2022JP, "iso-2022-jp"}, 232 "iso-2022-jp": {japanese.ISO2022JP, "iso-2022-jp"}, 233 "csshiftjis": {japanese.ShiftJIS, "shift_jis"}, 234 "ms_kanji": {japanese.ShiftJIS, "shift_jis"}, 235 "shift-jis": {japanese.ShiftJIS, "shift_jis"}, 236 "shift_jis": {japanese.ShiftJIS, "shift_jis"}, 237 "sjis": {japanese.ShiftJIS, "shift_jis"}, 238 "windows-31j": {japanese.ShiftJIS, "shift_jis"}, 239 "x-sjis": {japanese.ShiftJIS, "shift_jis"}, 240 "cseuckr": {korean.EUCKR, "euc-kr"}, 241 "csksc56011987": {korean.EUCKR, "euc-kr"}, 242 "euc-kr": {korean.EUCKR, "euc-kr"}, 243 "iso-ir-149": {korean.EUCKR, "euc-kr"}, 244 "korean": {korean.EUCKR, "euc-kr"}, 245 "ks_c_5601-1987": {korean.EUCKR, "euc-kr"}, 246 "ks_c_5601-1989": {korean.EUCKR, "euc-kr"}, 247 "ksc5601": {korean.EUCKR, "euc-kr"}, 248 "ksc_5601": {korean.EUCKR, "euc-kr"}, 249 "windows-949": {korean.EUCKR, "euc-kr"}, 250 "csiso2022kr": {encoding.Replacement, "replacement"}, 251 "iso-2022-kr": {encoding.Replacement, "replacement"}, 252 "iso-2022-cn": {encoding.Replacement, "replacement"}, 253 "iso-2022-cn-ext": {encoding.Replacement, "replacement"}, 254 "utf-16be": {unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), "utf-16be"}, 255 "utf-16": {unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), "utf-16le"}, 256 "utf-16le": {unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), "utf-16le"}, 257 "x-user-defined": {charmap.XUserDefined, "x-user-defined"}, 258 }