1 /* 2 3 Copyright (c) 2005-2013 uim Project https://github.com/uim/uim 4 5 All rights reserved. 6 7 Redistribution and use in source and binary forms, with or without 8 modification, are permitted provided that the following conditions 9 are met: 10 11 1. Redistributions of source code must retain the above copyright 12 notice, this list of conditions and the following disclaimer. 13 2. Redistributions in binary form must reproduce the above copyright 14 notice, this list of conditions and the following disclaimer in the 15 documentation and/or other materials provided with the distribution. 16 3. Neither the name of authors nor the names of its contributors 17 may be used to endorse or promote products derived from this software 18 without specific prior written permission. 19 20 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND 21 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE 24 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 SUCH DAMAGE. 31 32 */ 33 34 /* 35 * Mostly from http://www.openi18n.org/subgroups/sa/locnameguide/final/CodesetAliasTable.html 36 */ 37 static const char *alias_us[] = { 38 "US-ASCII", "ANSI_X3.4-1968", "ASCII", "CP367", "cp367", "IBM367", 39 "ISO-IR-6", "ISO646-US", "ISO-646-US", "ANSI_X3.4-1986", "iso-ir-6", 40 "ISO_646.irv:1991", "us", "csASCII", "646", 41 NULL 42 }; 43 static const char *alias_big5[] = { 44 "Big5", "TCA-BIG5", "BIG5", "BIG5-CP950", "csBig5", "big5", 45 NULL 46 }; 47 static const char *alias_hkscs[] = { 48 "Big5-HKSCS", "HKSCS-BIG5", "BIG5-HKSCS", "BIG5HKSCS", "big5hk", 49 "big5-hkscs:unicode 3.0", 50 NULL 51 }; 52 static const char *alias_eucjp[] = { 53 "EUC-JIS-2004", "EUC-JISX0213", 54 "EUC-JP", "eucJP", "ujis", 55 "Extended_UNIX_Code_Packed_Format_for_Japanese", "euc-jp", 56 "csEUCPkdFmtJapanese", 57 NULL 58 }; 59 static const char *alias_utf8[] = { 60 "UTF-8", "utf-8", "unicode-1-utf-8", "utf8", "UTF8", 61 NULL 62 }; 63 static const char *alias_euckr[] = { 64 "EUC-KR", "csEUCKR", "5601", "ksc-5601", "ksc-5601-1987", 65 "ksc-5601_1987", "ksc5601", 66 NULL 67 }; 68 static const char *alias_euctw[] = { 69 "EUC-TW", "cns11643", "ibm-euctw", 70 NULL 71 }; 72 static const char *alias_gb18030[] = { 73 "GB-18030", "GB18030", "ibm1392", "ibm-1392", "gb18030-2000", 74 NULL 75 }; 76 static const char *alias_gb2312[] = { 77 "GB2312", "GB-2312", "csGB2312", "EUC_CN", "gb2312-80", 78 "gb2312-1980", "euccn", "euc-cn", 79 NULL 80 }; 81 static const char *alias_gbk[] = { 82 "GB-K", "GBK", 83 NULL 84 }; 85 static const char *alias_iso88591[] = { 86 "ISO-8859-1", "ISO-IR-100", "ISO_8859-1:1987", "ISO_8859-1", 87 "LATIN1", "L1", "latin1", "l1", "IBM819", "CP819", "csISOLatin1" 88 "819", "iso8859-1", "8859-1", "iso8859_1", "iso_8859_1", 89 NULL 90 }; 91 static const char *alias_iso88592[] = { 92 "ISO-8859-2", "ISO-IR-101", "ISO_8859-2:1987", "ISO_8859-2", 93 "LATIN2", "L2", "csISOLatin2", "912", "cp912", "ibm-912", "ibm912", 94 "iso8859-2", "8859-2", "iso8859_2", "iso_8859_2", 95 NULL 96 }; 97 static const char *alias_iso88593[] = { 98 "ISO-8859-3", "ISO-IR-109", "ISO_8859-3:1988", "ISO_8859-3", 99 "LATIN3", "L3", "csISOLatin3", "913", "cp913", "ibm-913", "ibm913", 100 "iso8859-3", "8859-3", "iso8859_3", "iso_8859_3", 101 NULL 102 }; 103 static const char *alias_iso88594[] = { 104 "ISO-8859-4", "ISO-IR-110", "ISO_8859-4:1988", "ISO_8859-4", 105 "LATIN4", "L4", "csISOLatin4", "914", "cp914", "ibm-914", "ibm914", 106 "iso8859-4", "8859-4", "iso8859_4", "iso_8859_4", 107 NULL 108 }; 109 static const char *alias_iso88595[] = { 110 "ISO-8859-5", "ISO-IR-144", "ISO_8859-5:1988", "ISO_8859-5", 111 "CYRILLIC", "csISOLatinCyrillic", "915", "cp915", "ibm-915", 112 "ibm915", "iso8859-5", "8859-5", "iso8859_5", "iso_8859_5", 113 NULL 114 }; 115 static const char *alias_iso88596[] = { 116 "ISO-8859-6", "ISO-IR-127", "ISO_8859-6:1987", "ISO_8859-6", 117 "ECMA-114", "ASMO-708", "ARABIC", "csISOLatinArabic", "1089", 118 "cp1089", "ibm-1089", "ibm1089", "iso8859-6", "8859-6", "iso8859_6", 119 "iso_8859_6", 120 NULL 121 }; 122 static const char *alias_iso88597[] = { 123 "ISO-8859-7", "ISO-IR-126", "ISO_8859-7:1987", "ISO_8859-7", 124 "ELOT_928", "ECMA-118", "greek", "greek8", "csISOLatinGreek", "813", 125 "cp813", "ibm-813", "ibm813", "iso8859-7", "8859-7", "iso8859_7", 126 "iso_8859_7", 127 NULL 128 }; 129 static const char *alias_iso88598[] = { 130 "ISO-8859-8", "ISO-IR-138", "ISO_8859-8:1988", "ISO_8859-8", 131 "hebrew", "csISOLatinHebrew", "916", "cp916", "ibm-916", "ibm916", 132 "iso8859-8", "8859-8", "iso8859_8", "iso_8859_8", 133 NULL 134 }; 135 static const char *alias_iso88599[] = { 136 "ISO-8859-9", "ISO-IR-148", "ISO_8859-9:1989", "ISO_8859-9", 137 "latin5", "l5", "csISOLatin5", "920", "cp920", "ibm-920", "ibm920", 138 "iso8859-9", "8859-9", "iso8859_9", "iso_8859_9", 139 NULL 140 }; 141 static const char *alias_iso885913[] = { 142 "ISO-8859-13", "ISO-IR-179", "LATIN7", "L7", "iso_8859-13", 143 "iso8859-13", "8859-13", "iso8859_13", "iso_8859_13", 144 NULL 145 }; 146 static const char *alias_iso885914[] = { 147 "ISO-8859-14", "LATIN8", "L8", "ISO-8859-14", "iso-ir-199", 148 "ISO_8859-14:1998", "ISO_8859-14", "iso-celtic", 149 NULL 150 }; 151 static const char *alias_iso885915[] = { 152 "ISO-8859-15", "csisolatin9", "csisolatin0", "latin9", "latin0", 153 "923", "cp923", "ibm-923", "ibm923", "iso8859-15", "iso_8859-15", 154 "8859-15", "iso_8859-15_FDIS", "L9", 155 NULL 156 }; 157 static const char *alias_iso885916[] = { 158 "ISO-8859-16", "ISO-IR-226", "LATIN10", "L10", 159 NULL 160 }; 161 static const char *alias_koi8r[] = { 162 "KOI8-R", "csKOI8R", "koi8", 163 NULL 164 }; 165 static const char *alias_koi8u[] = { 166 "KOI-8-U", 167 NULL 168 }; 169 static const char *alias_koi8t[] = { 170 "KOI-8-T", 171 NULL 172 }; 173 static const char *alias_sjis[] = { 174 "Shift_JIS", "SHIFT-JIS", "SHIFTJIS", "SJIS", "sjis", "MS_Kanji", 175 "csShiftJIS", "pck", "PCK", 176 NULL 177 }; 178 static const char *alias_viscii[] = { 179 "VISCII", 180 NULL 181 }; 182 static const char *alias_cp437[] = { 183 "CP-437", "IBM437", "CP437", "437", "csPC8CodePage437", "ibm-437", 184 NULL 185 }; 186 static const char *alias_cp850[] = { 187 "CP-850", "IBM850", "cp850", "850", "csPC850Multilingual", 188 "ibm-850", 189 NULL 190 }; 191 static const char *alias_cp851[] = { 192 "CP-851", "IBM851", "cp851", "851", "csIBM851", 193 NULL 194 }; 195 static const char *alias_cp852[] = { 196 "CP-852", "IBM852", "cp852", "852", "csPCp852", "ibm-852", 197 NULL 198 }; 199 static const char *alias_cp855[] = { 200 "CP-855", "IBM855", "cp855", "855", "csIBM855", "cspcp855", 201 "ibm-855", 202 NULL 203 }; 204 static const char *alias_cp857[] = { 205 "CP-857", "IBM857", "cp857", "857", "csIBM857", "ibm-857", 206 NULL 207 }; 208 static const char *alias_cp860[] = { 209 "CP-860", "IBM860", "cp860", "860", "csIBM860", "ibm-860", 210 NULL 211 }; 212 static const char *alias_cp861[] = { 213 "CP-861", "IBM861", "cp861", "861", "cp-is", "csIBM861", "ibm-861", 214 NULL 215 }; 216 static const char *alias_cp862[] = { 217 "CP-862", "IBM862", "cp862", "862", "csPC862LatinHebrew", "ibm-862", 218 NULL 219 }; 220 static const char *alias_cp863[] = { 221 "CP-863", "IBM863", "cp863", "863", "csIBM863", "ibm-863", 222 NULL 223 }; 224 static const char *alias_cp864[] = { 225 "CP-864", "IBM864", "cp864", "csIBM864", "ibm-864", 226 NULL 227 }; 228 static const char *alias_cp865[] = { 229 "CP-865", "IBM865", "cp865", "865", "csIBM865", "ibm-865", 230 NULL 231 }; 232 static const char *alias_cp866[] = { 233 "CP-866", "IBM866", "cp866", "866", "csIBM866", "ibm-866", 234 NULL 235 }; 236 static const char *alias_cp868[] = { 237 "CP-868", "IBM868", "CP868", "cp-ar", "csIBM868", "ibm-868", 238 NULL 239 }; 240 static const char *alias_cp869[] = { 241 "CP-869", "IBM869", "cp869", "869", "cp-gr", "csIBM869", 242 NULL 243 }; 244 static const char *alias_cp891[] = { 245 "CP-891", "IBM891", "cp891", "csIBM891", 246 NULL 247 }; 248 static const char *alias_cp903[] = { 249 "CP-903", "IBM903", "cp903", "csIBM903", 250 NULL 251 }; 252 static const char *alias_cp904[] = { 253 "CP-904", "IBM904", "cp904", "904", "csIBM904", 254 NULL 255 }; 256 static const char *alias_cp1251[] = { 257 "CP-1251", "CP1251", "MS-CYRL", "windows-1251", "Cp1251", 258 NULL 259 }; 260 static const char *alias_cp1255[] = { 261 "CP-1255", "CP1255", "MS-HEBR", "windows-1255", 262 NULL 263 }; 264 static const char *alias_tis620[] = { 265 "TIS-620", "TIS620", "TIS620-0", "TIS620.2529-1", "TIS620.2533-0", 266 "ISO-IR-166", "TIS620.2533", 267 NULL 268 }; 269 static const char *alias_georgianps[] = { 270 "GEORGIAN-PS", 271 NULL 272 }; 273 274 static const char **uim_encoding_list[] = { 275 alias_us, 276 alias_big5, 277 alias_hkscs, 278 alias_eucjp, 279 alias_utf8, 280 alias_euckr, 281 alias_euctw, 282 alias_gb18030, 283 alias_gb2312, 284 alias_gbk, 285 alias_iso88591, 286 alias_iso88592, 287 alias_iso88593, 288 alias_iso88594, 289 alias_iso88595, 290 alias_iso88596, 291 alias_iso88597, 292 alias_iso88598, 293 alias_iso88599, 294 alias_iso885913, 295 alias_iso885914, 296 alias_iso885915, 297 alias_iso885916, 298 alias_koi8r, 299 alias_koi8u, 300 alias_koi8t, 301 alias_sjis, 302 alias_viscii, 303 alias_cp437, 304 alias_cp850, 305 alias_cp851, 306 alias_cp852, 307 alias_cp855, 308 alias_cp857, 309 alias_cp860, 310 alias_cp861, 311 alias_cp862, 312 alias_cp863, 313 alias_cp864, 314 alias_cp865, 315 alias_cp866, 316 alias_cp868, 317 alias_cp869, 318 alias_cp891, 319 alias_cp903, 320 alias_cp904, 321 alias_cp1251, 322 alias_cp1255, 323 alias_tis620, 324 alias_georgianps, 325 NULL 326 }; 327