encodings.def 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040
  1. /* Copyright (C) 1999-2011 Free Software Foundation, Inc.
  2. This file is part of the GNU LIBICONV Library.
  3. The GNU LIBICONV Library is free software; you can redistribute it
  4. and/or modify it under the terms of the GNU Lesser General Public
  5. License as published by the Free Software Foundation; either version 2.1
  6. of the License, or (at your option) any later version.
  7. The GNU LIBICONV Library is distributed in the hope that it will be
  8. useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  10. Lesser General Public License for more details.
  11. You should have received a copy of the GNU Lesser General Public
  12. License along with the GNU LIBICONV Library; see the file COPYING.LIB.
  13. If not, see <https://www.gnu.org/licenses/>. */
  14. /* The list of all system independent user-visible encodings. */
  15. /* By convention, an encoding named FOOBAR or FOO_BAR or FOO-BAR is defined
  16. in a file named "foobar.h" through the functions foobar_mbtowc and
  17. foobar_wctomb (and possibly foobar_reset). */
  18. /* DEFENCODING(( name, alias1, ..., ),
  19. xxx,
  20. { xxx_mbtowc, xxx_flushwc },
  21. { xxx_wctomb, xxx_reset })
  22. defines an encoding with the given name and aliases. (There is no
  23. difference between a name and an alias. By convention, the name is chosen
  24. as the preferred MIME name or the standard name.)
  25. All names and aliases must be in ASCII. Case is not significant, but
  26. for the "cs*" aliases mixed case is preferred, otherwise UPPERCASE is
  27. preferred. For all names and aliases, note where it comes from.
  28. xxx is the name as used in the C code (lowercase).
  29. */
  30. DEFENCODING(( "US-ASCII", /* IANA */
  31. "ASCII", /* IANA, JDK 1.1 */
  32. "ISO646-US", /* IANA */
  33. "ISO_646.IRV:1991", /* IANA */
  34. "ISO-IR-6", /* IANA */
  35. "ANSI_X3.4-1968", /* IANA */
  36. "ANSI_X3.4-1986", /* IANA */
  37. "CP367", /* IANA */
  38. "IBM367", /* IANA */
  39. "US", /* IANA */
  40. "csASCII", /* IANA */
  41. /*"ISO646.1991-IRV", X11R6.4 */
  42. ),
  43. ascii,
  44. { ascii_mbtowc, NULL }, { ascii_wctomb, NULL })
  45. #ifdef USE_SOLARIS_ALIASES
  46. DEFALIAS( "646", /* Solaris */
  47. ascii)
  48. #endif
  49. /* General multi-byte encodings */
  50. DEFENCODING(( "UTF-8", /* IANA, RFC 2279 */
  51. /*"UTF8", JDK 1.1 */
  52. /*"CP65001", Windows */
  53. ),
  54. utf8,
  55. { utf8_mbtowc, NULL }, { utf8_wctomb, NULL })
  56. #ifdef USE_HPUX_ALIASES
  57. DEFALIAS( "UTF8", /* HP-UX */
  58. utf8)
  59. #endif
  60. DEFENCODING(( "UCS-2", /* glibc */
  61. "ISO-10646-UCS-2", /* IANA */
  62. "csUnicode", /* IANA */
  63. ),
  64. ucs2,
  65. { ucs2_mbtowc, NULL }, { ucs2_wctomb, NULL })
  66. DEFENCODING(( "UCS-2BE", /* glibc */
  67. "UNICODEBIG", /* glibc */
  68. "UNICODE-1-1", /* IANA */
  69. "csUnicode11", /* IANA */
  70. /*"CP1201", Windows */
  71. ),
  72. ucs2be,
  73. { ucs2be_mbtowc, NULL }, { ucs2be_wctomb, NULL })
  74. DEFENCODING(( "UCS-2LE", /* glibc */
  75. "UNICODELITTLE", /* glibc */
  76. /*"CP1200", Windows */
  77. ),
  78. ucs2le,
  79. { ucs2le_mbtowc, NULL }, { ucs2le_wctomb, NULL })
  80. DEFENCODING(( "UCS-4", /* glibc */
  81. "ISO-10646-UCS-4", /* IANA */
  82. "csUCS4", /* IANA */
  83. ),
  84. ucs4,
  85. { ucs4_mbtowc, NULL }, { ucs4_wctomb, NULL })
  86. DEFENCODING(( "UCS-4BE", /* glibc */
  87. /*"CP12001", Windows */
  88. ),
  89. ucs4be,
  90. { ucs4be_mbtowc, NULL }, { ucs4be_wctomb, NULL })
  91. DEFENCODING(( "UCS-4LE", /* glibc */
  92. /*"CP12000", Windows */
  93. ),
  94. ucs4le,
  95. { ucs4le_mbtowc, NULL }, { ucs4le_wctomb, NULL })
  96. DEFENCODING(( "UTF-16", /* IANA, RFC 2781 */
  97. ),
  98. utf16,
  99. { utf16_mbtowc, NULL }, { utf16_wctomb, NULL })
  100. DEFENCODING(( "UTF-16BE", /* IANA, RFC 2781 */
  101. ),
  102. utf16be,
  103. { utf16be_mbtowc, NULL }, { utf16be_wctomb, NULL })
  104. DEFENCODING(( "UTF-16LE", /* IANA, RFC 2781 */
  105. ),
  106. utf16le,
  107. { utf16le_mbtowc, NULL }, { utf16le_wctomb, NULL })
  108. DEFENCODING(( "UTF-32", /* IANA, Unicode 3.1 */
  109. ),
  110. utf32,
  111. { utf32_mbtowc, NULL }, { utf32_wctomb, NULL })
  112. DEFENCODING(( "UTF-32BE", /* IANA, Unicode 3.1 */
  113. ),
  114. utf32be,
  115. { utf32be_mbtowc, NULL }, { utf32be_wctomb, NULL })
  116. DEFENCODING(( "UTF-32LE", /* IANA, Unicode 3.1 */
  117. ),
  118. utf32le,
  119. { utf32le_mbtowc, NULL }, { utf32le_wctomb, NULL })
  120. DEFENCODING(( "UTF-7", /* IANA, RFC 2152 */
  121. "UNICODE-1-1-UTF-7", /* IANA, RFC 1642 */
  122. "csUnicode11UTF7", /* IANA */
  123. /*"CP65000", Windows */
  124. ),
  125. utf7,
  126. { utf7_mbtowc, NULL }, { utf7_wctomb, utf7_reset })
  127. DEFENCODING(( "UCS-2-INTERNAL", /* libiconv */
  128. ),
  129. ucs2internal,
  130. { ucs2internal_mbtowc, NULL }, { ucs2internal_wctomb, NULL })
  131. DEFENCODING(( "UCS-2-SWAPPED", /* libiconv */
  132. ),
  133. ucs2swapped,
  134. { ucs2swapped_mbtowc, NULL }, { ucs2swapped_wctomb, NULL })
  135. DEFENCODING(( "UCS-4-INTERNAL", /* libiconv */
  136. ),
  137. ucs4internal,
  138. { ucs4internal_mbtowc, NULL },{ ucs4internal_wctomb, NULL })
  139. DEFENCODING(( "UCS-4-SWAPPED", /* libiconv */
  140. ),
  141. ucs4swapped,
  142. { ucs4swapped_mbtowc, NULL }, { ucs4swapped_wctomb, NULL })
  143. DEFENCODING(( "C99",
  144. ),
  145. c99,
  146. { c99_mbtowc, NULL }, { c99_wctomb, NULL })
  147. DEFENCODING(( "JAVA",
  148. ),
  149. java,
  150. { java_mbtowc, NULL }, { java_wctomb, NULL })
  151. /* Standard 8-bit encodings */
  152. DEFENCODING(( "ISO-8859-1", /* IANA */
  153. "ISO_8859-1", /* IANA */
  154. "ISO_8859-1:1987", /* IANA */
  155. "ISO-IR-100", /* IANA */
  156. "CP819", /* IANA */
  157. "IBM819", /* IANA */
  158. "LATIN1", /* IANA */
  159. "L1", /* IANA */
  160. "csISOLatin1", /* IANA */
  161. "ISO8859-1", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
  162. /*"ISO8859_1", JDK 1.1 */
  163. /*"CP28591", Windows */
  164. ),
  165. iso8859_1,
  166. { iso8859_1_mbtowc, NULL }, { iso8859_1_wctomb, NULL })
  167. #ifdef USE_HPUX_ALIASES
  168. DEFALIAS( "ISO88591", /* HP-UX */
  169. iso8859_1)
  170. #endif
  171. DEFENCODING(( "ISO-8859-2", /* IANA */
  172. "ISO_8859-2", /* IANA */
  173. "ISO_8859-2:1987", /* IANA */
  174. "ISO-IR-101", /* IANA */
  175. "LATIN2", /* IANA */
  176. "L2", /* IANA */
  177. "csISOLatin2", /* IANA */
  178. "ISO8859-2", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
  179. /*"ISO8859_2", JDK 1.1 */
  180. /*"CP28592", Windows */
  181. ),
  182. iso8859_2,
  183. { iso8859_2_mbtowc, NULL }, { iso8859_2_wctomb, NULL })
  184. #ifdef USE_HPUX_ALIASES
  185. DEFALIAS( "ISO88592", /* HP-UX */
  186. iso8859_2)
  187. #endif
  188. DEFENCODING(( "ISO-8859-3", /* IANA */
  189. "ISO_8859-3", /* IANA */
  190. "ISO_8859-3:1988", /* IANA */
  191. "ISO-IR-109", /* IANA */
  192. "LATIN3", /* IANA */
  193. "L3", /* IANA */
  194. "csISOLatin3", /* IANA */
  195. "ISO8859-3", /* X11R6.4, glibc, FreeBSD, Solaris */
  196. /*"ISO8859_3", JDK 1.1 */
  197. /*"CP28593", Windows */
  198. ),
  199. iso8859_3,
  200. { iso8859_3_mbtowc, NULL }, { iso8859_3_wctomb, NULL })
  201. DEFENCODING(( "ISO-8859-4", /* IANA */
  202. "ISO_8859-4", /* IANA */
  203. "ISO_8859-4:1988", /* IANA */
  204. "ISO-IR-110", /* IANA */
  205. "LATIN4", /* IANA */
  206. "L4", /* IANA */
  207. "csISOLatin4", /* IANA */
  208. "ISO8859-4", /* X11R6.4, glibc, FreeBSD, OSF/1, Solaris */
  209. /*"ISO8859_4", JDK 1.1 */
  210. /*"CP28594", Windows */
  211. ),
  212. iso8859_4,
  213. { iso8859_4_mbtowc, NULL }, { iso8859_4_wctomb, NULL })
  214. DEFENCODING(( "ISO-8859-5", /* IANA */
  215. "ISO_8859-5", /* IANA */
  216. "ISO_8859-5:1988", /* IANA */
  217. "ISO-IR-144", /* IANA */
  218. "CYRILLIC", /* IANA */
  219. "csISOLatinCyrillic", /* IANA */
  220. "ISO8859-5", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
  221. /*"ISO8859_5", JDK 1.1 */
  222. /*"CP28595", Windows */
  223. ),
  224. iso8859_5,
  225. { iso8859_5_mbtowc, NULL }, { iso8859_5_wctomb, NULL })
  226. #ifdef USE_HPUX_ALIASES
  227. DEFALIAS( "ISO88595", /* HP-UX */
  228. iso8859_5)
  229. #endif
  230. DEFENCODING(( "ISO-8859-6", /* IANA */
  231. "ISO_8859-6", /* IANA */
  232. "ISO_8859-6:1987", /* IANA */
  233. "ISO-IR-127", /* IANA */
  234. "ECMA-114", /* IANA */
  235. "ASMO-708", /* IANA */
  236. "ARABIC", /* IANA */
  237. "csISOLatinArabic", /* IANA */
  238. "ISO8859-6", /* X11R6.4, glibc, FreeBSD, AIX, Solaris */
  239. /*"ISO8859_6", JDK 1.1 */
  240. /*"CP28596", Windows */
  241. ),
  242. iso8859_6,
  243. { iso8859_6_mbtowc, NULL }, { iso8859_6_wctomb, NULL })
  244. #ifdef USE_HPUX_ALIASES
  245. DEFALIAS( "ISO88596", /* HP-UX */
  246. iso8859_6)
  247. #endif
  248. DEFENCODING(( "ISO-8859-7", /* IANA, RFC 1947 */
  249. "ISO_8859-7", /* IANA */
  250. "ISO_8859-7:1987", /* IANA */
  251. "ISO_8859-7:2003",
  252. "ISO-IR-126", /* IANA */
  253. "ECMA-118", /* IANA */
  254. "ELOT_928", /* IANA */
  255. "GREEK8", /* IANA */
  256. "GREEK", /* IANA */
  257. "csISOLatinGreek", /* IANA */
  258. "ISO8859-7", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
  259. /*"ISO8859_7", JDK 1.1 */
  260. /*"CP28597", Windows */
  261. ),
  262. iso8859_7,
  263. { iso8859_7_mbtowc, NULL }, { iso8859_7_wctomb, NULL })
  264. #ifdef USE_HPUX_ALIASES
  265. DEFALIAS( "ISO88597", /* HP-UX */
  266. iso8859_7)
  267. #endif
  268. DEFENCODING(( "ISO-8859-8", /* IANA */
  269. "ISO_8859-8", /* IANA */
  270. "ISO_8859-8:1988", /* IANA */
  271. "ISO-IR-138", /* IANA */
  272. "HEBREW", /* IANA */
  273. "csISOLatinHebrew", /* IANA */
  274. "ISO8859-8", /* X11R6.4, glibc, FreeBSD, AIX, OSF/1, Solaris */
  275. /*"ISO8859_8", JDK 1.1 */
  276. /*"CP28598", Windows */
  277. /*"CP38598", Windows */
  278. ),
  279. iso8859_8,
  280. { iso8859_8_mbtowc, NULL }, { iso8859_8_wctomb, NULL })
  281. #ifdef USE_HPUX_ALIASES
  282. DEFALIAS( "ISO88598", /* HP-UX */
  283. iso8859_8)
  284. #endif
  285. DEFENCODING(( "ISO-8859-9", /* IANA */
  286. "ISO_8859-9", /* IANA */
  287. "ISO_8859-9:1989", /* IANA */
  288. "ISO-IR-148", /* IANA */
  289. "LATIN5", /* IANA */
  290. "L5", /* IANA */
  291. "csISOLatin5", /* IANA */
  292. "ISO8859-9", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
  293. /*"ISO8859_9", JDK 1.1 */
  294. /*"CP28599", Windows */
  295. ),
  296. iso8859_9,
  297. { iso8859_9_mbtowc, NULL }, { iso8859_9_wctomb, NULL })
  298. #ifdef USE_HPUX_ALIASES
  299. DEFALIAS( "ISO88599", /* HP-UX */
  300. iso8859_9)
  301. #endif
  302. DEFENCODING(( "ISO-8859-10", /* IANA */
  303. "ISO_8859-10",
  304. "ISO_8859-10:1992", /* IANA */
  305. "ISO-IR-157", /* IANA */
  306. "LATIN6", /* IANA */
  307. "L6", /* IANA */
  308. "csISOLatin6", /* IANA */
  309. "ISO8859-10", /* X11R6.4, glibc, FreeBSD */
  310. ),
  311. iso8859_10,
  312. { iso8859_10_mbtowc, NULL }, { iso8859_10_wctomb, NULL })
  313. DEFENCODING(( "ISO-8859-11", /* glibc */
  314. "ISO_8859-11",
  315. "ISO8859-11", /* X11R6.7, glibc */
  316. ),
  317. iso8859_11,
  318. { iso8859_11_mbtowc, NULL }, { iso8859_11_wctomb, NULL })
  319. DEFENCODING(( "ISO-8859-13", /* IANA, glibc */
  320. "ISO_8859-13",
  321. "ISO-IR-179", /* glibc */
  322. "LATIN7", /* glibc */
  323. "L7", /* glibc */
  324. "ISO8859-13", /* glibc, FreeBSD */
  325. /*"CP28603", Windows */
  326. ),
  327. iso8859_13,
  328. { iso8859_13_mbtowc, NULL }, { iso8859_13_wctomb, NULL })
  329. #ifdef USE_AIX_ALIASES
  330. DEFALIAS( "IBM-921", /* AIX */
  331. iso8859_13)
  332. #endif
  333. DEFENCODING(( "ISO-8859-14", /* IANA, glibc */
  334. "ISO_8859-14", /* IANA */
  335. "ISO_8859-14:1998", /* IANA, glibc */
  336. "ISO-IR-199", /* IANA */
  337. "LATIN8", /* IANA, glibc */
  338. "L8", /* IANA, glibc */
  339. "ISO-CELTIC", /* IANA */
  340. "ISO8859-14", /* glibc, FreeBSD */
  341. ),
  342. iso8859_14,
  343. { iso8859_14_mbtowc, NULL }, { iso8859_14_wctomb, NULL })
  344. DEFENCODING(( "ISO-8859-15", /* IANA, glibc */
  345. "ISO_8859-15", /* IANA */
  346. "ISO_8859-15:1998", /* glibc */
  347. "ISO-IR-203",
  348. "LATIN-9", /* IANA */
  349. "ISO8859-15", /* glibc, FreeBSD, AIX, OSF/1, Solaris */
  350. /*"CP28605", Windows */
  351. ),
  352. iso8859_15,
  353. { iso8859_15_mbtowc, NULL }, { iso8859_15_wctomb, NULL })
  354. #ifdef USE_HPUX_ALIASES
  355. DEFALIAS( "ISO885915", /* HP-UX */
  356. iso8859_15)
  357. #endif
  358. DEFENCODING(( "ISO-8859-16", /* IANA */
  359. "ISO_8859-16", /* IANA */
  360. "ISO_8859-16:2001", /* IANA */
  361. "ISO-IR-226", /* IANA */
  362. "LATIN10", /* IANA */
  363. "L10", /* IANA */
  364. "ISO8859-16", /* glibc, FreeBSD */
  365. ),
  366. iso8859_16,
  367. { iso8859_16_mbtowc, NULL }, { iso8859_16_wctomb, NULL })
  368. DEFENCODING(( "KOI8-R", /* IANA, RFC 1489, X11R6.4, JDK 1.1 */
  369. "csKOI8R", /* IANA */
  370. /*"CP20866", Windows */
  371. ),
  372. koi8_r,
  373. { koi8_r_mbtowc, NULL }, { koi8_r_wctomb, NULL })
  374. DEFENCODING(( "KOI8-U", /* IANA, RFC 2319 */
  375. ),
  376. koi8_u,
  377. { koi8_u_mbtowc, NULL }, { koi8_u_wctomb, NULL })
  378. DEFENCODING(( "KOI8-RU",
  379. /*"CP21866", Windows */
  380. ),
  381. koi8_ru,
  382. { koi8_ru_mbtowc, NULL }, { koi8_ru_wctomb, NULL })
  383. /* Windows 8-bit encodings */
  384. DEFENCODING(( "CP1250", /* JDK 1.1 */
  385. "WINDOWS-1250", /* IANA */
  386. "MS-EE",
  387. ),
  388. cp1250,
  389. { cp1250_mbtowc, NULL }, { cp1250_wctomb, NULL })
  390. DEFENCODING(( "CP1251", /* JDK 1.1 */
  391. "WINDOWS-1251", /* IANA */
  392. "MS-CYRL",
  393. ),
  394. cp1251,
  395. { cp1251_mbtowc, NULL }, { cp1251_wctomb, NULL })
  396. #ifdef USE_SOLARIS_ALIASES
  397. DEFALIAS( "ANSI-1251", /* Solaris */
  398. cp1251)
  399. #endif
  400. DEFENCODING(( "CP1252", /* JDK 1.1 */
  401. "WINDOWS-1252", /* IANA */
  402. "MS-ANSI",
  403. ),
  404. cp1252,
  405. { cp1252_mbtowc, NULL }, { cp1252_wctomb, NULL })
  406. #ifdef USE_AIX_ALIASES
  407. DEFALIAS( "IBM-1252", /* AIX */
  408. cp1252)
  409. #endif
  410. DEFENCODING(( "CP1253", /* JDK 1.1 */
  411. "WINDOWS-1253", /* IANA */
  412. "MS-GREEK",
  413. ),
  414. cp1253,
  415. { cp1253_mbtowc, NULL }, { cp1253_wctomb, NULL })
  416. DEFENCODING(( "CP1254", /* JDK 1.1 */
  417. "WINDOWS-1254", /* IANA */
  418. "MS-TURK",
  419. ),
  420. cp1254,
  421. { cp1254_mbtowc, NULL }, { cp1254_wctomb, NULL })
  422. DEFENCODING(( "CP1255", /* JDK 1.1 */
  423. "WINDOWS-1255", /* IANA */
  424. "MS-HEBR",
  425. ),
  426. cp1255,
  427. { cp1255_mbtowc, cp1255_flushwc }, { cp1255_wctomb, NULL })
  428. DEFENCODING(( "CP1256", /* JDK 1.1 */
  429. "WINDOWS-1256", /* IANA */
  430. "MS-ARAB",
  431. ),
  432. cp1256,
  433. { cp1256_mbtowc, NULL }, { cp1256_wctomb, NULL })
  434. DEFENCODING(( "CP1257", /* JDK 1.1 */
  435. "WINDOWS-1257", /* IANA */
  436. "WINBALTRIM",
  437. ),
  438. cp1257,
  439. { cp1257_mbtowc, NULL }, { cp1257_wctomb, NULL })
  440. DEFENCODING(( "CP1258", /* JDK 1.1 */
  441. "WINDOWS-1258", /* IANA */
  442. ),
  443. cp1258,
  444. { cp1258_mbtowc, cp1258_flushwc }, { cp1258_wctomb, NULL })
  445. /* DOS 8-bit encodings */
  446. DEFENCODING(( "CP850", /* IANA, JDK 1.1 */
  447. "IBM850", /* IANA */
  448. "850", /* IANA */
  449. "csPC850Multilingual", /* IANA */
  450. ),
  451. cp850,
  452. { cp850_mbtowc, NULL }, { cp850_wctomb, NULL })
  453. #ifdef USE_AIX_ALIASES
  454. DEFALIAS( "IBM-850", /* AIX */
  455. cp850)
  456. #endif
  457. DEFENCODING(( "CP862", /* IANA, JDK 1.1 */
  458. "IBM862", /* IANA */
  459. "862", /* IANA */
  460. "csPC862LatinHebrew", /* IANA */
  461. ),
  462. cp862,
  463. { cp862_mbtowc, NULL }, { cp862_wctomb, NULL })
  464. DEFENCODING(( "CP866", /* IANA, JDK 1.1 */
  465. "IBM866", /* IANA */
  466. "866", /* IANA */
  467. "csIBM866", /* IANA */
  468. ),
  469. cp866,
  470. { cp866_mbtowc, NULL }, { cp866_wctomb, NULL })
  471. DEFENCODING(( "CP1131", /* FreeBSD, MacOS X */
  472. ),
  473. cp1131,
  474. { cp1131_mbtowc, NULL }, { cp1131_wctomb, NULL })
  475. #ifdef USE_AIX_ALIASES
  476. DEFALIAS( "IBM-1131", /* AIX */
  477. cp1131)
  478. #endif
  479. /* Macintosh 8-bit encodings */
  480. DEFENCODING(( "MacRoman", /* JDK 1.1 */
  481. /* This is the best table for MACINTOSH. The ones */
  482. /* in glibc and FreeBSD-iconv are bad quality. */
  483. "MACINTOSH", /* IANA */
  484. "MAC", /* IANA */
  485. "csMacintosh", /* IANA */
  486. /*"CP10000", Windows */
  487. ),
  488. mac_roman,
  489. { mac_roman_mbtowc, NULL }, { mac_roman_wctomb, NULL })
  490. DEFENCODING(( "MacCentralEurope", /* JDK 1.1 */
  491. /*"CP10029", Windows */
  492. ),
  493. mac_centraleurope,
  494. { mac_centraleurope_mbtowc, NULL }, { mac_centraleurope_wctomb, NULL })
  495. DEFENCODING(( "MacIceland", /* JDK 1.1 */
  496. /*"CP10079", Windows */
  497. ),
  498. mac_iceland,
  499. { mac_iceland_mbtowc, NULL }, { mac_iceland_wctomb, NULL })
  500. DEFENCODING(( "MacCroatian", /* JDK 1.1 */
  501. /*"CP10082", Windows */
  502. ),
  503. mac_croatian,
  504. { mac_croatian_mbtowc, NULL }, { mac_croatian_wctomb, NULL })
  505. DEFENCODING(( "MacRomania", /* JDK 1.1 */
  506. /*"CP10010", Windows */
  507. ),
  508. mac_romania,
  509. { mac_romania_mbtowc, NULL }, { mac_romania_wctomb, NULL })
  510. DEFENCODING(( "MacCyrillic", /* JDK 1.1 */
  511. /*"CP10007", Windows */
  512. ),
  513. mac_cyrillic,
  514. { mac_cyrillic_mbtowc, NULL }, { mac_cyrillic_wctomb, NULL })
  515. DEFENCODING(( "MacUkraine", /* JDK 1.1 */
  516. /*"CP10017", Windows */
  517. ),
  518. mac_ukraine,
  519. { mac_ukraine_mbtowc, NULL }, { mac_ukraine_wctomb, NULL })
  520. DEFENCODING(( "MacGreek", /* JDK 1.1 */
  521. /*"CP10006", Windows */
  522. ),
  523. mac_greek,
  524. { mac_greek_mbtowc, NULL }, { mac_greek_wctomb, NULL })
  525. DEFENCODING(( "MacTurkish", /* JDK 1.1 */
  526. /*"CP10081", Windows */
  527. ),
  528. mac_turkish,
  529. { mac_turkish_mbtowc, NULL }, { mac_turkish_wctomb, NULL })
  530. DEFENCODING(( "MacHebrew", /* JDK 1.1 */
  531. /*"CP10005", Windows */
  532. ),
  533. mac_hebrew,
  534. { mac_hebrew_mbtowc, NULL }, { mac_hebrew_wctomb, NULL })
  535. DEFENCODING(( "MacArabic", /* JDK 1.1 */
  536. /*"CP10004", Windows */
  537. ),
  538. mac_arabic,
  539. { mac_arabic_mbtowc, NULL }, { mac_arabic_wctomb, NULL })
  540. DEFENCODING(( "MacThai", /* JDK 1.1 */
  541. /*"CP10021", Windows */
  542. ),
  543. mac_thai,
  544. { mac_thai_mbtowc, NULL }, { mac_thai_wctomb, NULL })
  545. /* Other platform specific 8-bit encodings */
  546. DEFENCODING(( "HP-ROMAN8", /* IANA, X11R6.4 */
  547. "ROMAN8", /* IANA */
  548. "R8", /* IANA */
  549. "csHPRoman8", /* IANA */
  550. ),
  551. hp_roman8,
  552. { hp_roman8_mbtowc, NULL }, { hp_roman8_wctomb, NULL })
  553. DEFENCODING(( "NEXTSTEP",
  554. ),
  555. nextstep,
  556. { nextstep_mbtowc, NULL }, { nextstep_wctomb, NULL })
  557. /* Regional 8-bit encodings used for a single language */
  558. DEFENCODING(( "ARMSCII-8",
  559. ),
  560. armscii_8,
  561. { armscii_8_mbtowc, NULL }, { armscii_8_wctomb, NULL })
  562. DEFENCODING(( "GEORGIAN-ACADEMY",
  563. ),
  564. georgian_academy,
  565. { georgian_academy_mbtowc, NULL }, { georgian_academy_wctomb, NULL })
  566. DEFENCODING(( "GEORGIAN-PS",
  567. ),
  568. georgian_ps,
  569. { georgian_ps_mbtowc, NULL }, { georgian_ps_wctomb, NULL })
  570. DEFENCODING(( "KOI8-T",
  571. ),
  572. koi8_t,
  573. { koi8_t_mbtowc, NULL }, { koi8_t_wctomb, NULL })
  574. DEFENCODING(( "PT154", /* IANA, glibc */
  575. "PTCP154", /* IANA */
  576. "CP154", /* IANA */
  577. "CYRILLIC-ASIAN", /* IANA */
  578. "csPTCP154", /* IANA */
  579. ),
  580. pt154,
  581. { pt154_mbtowc, NULL }, { pt154_wctomb, NULL })
  582. DEFENCODING(( "RK1048", /* IANA, glibc */
  583. "STRK1048-2002", /* IANA */
  584. "KZ-1048", /* IANA */
  585. "csKZ1048", /* IANA */
  586. ),
  587. rk1048,
  588. { rk1048_mbtowc, NULL }, { rk1048_wctomb, NULL })
  589. DEFENCODING(( "MULELAO-1",
  590. ),
  591. mulelao,
  592. { mulelao_mbtowc, NULL }, { mulelao_wctomb, NULL })
  593. DEFENCODING(( "CP1133",
  594. "IBM-CP1133",
  595. ),
  596. cp1133,
  597. { cp1133_mbtowc, NULL }, { cp1133_wctomb, NULL })
  598. DEFENCODING(( "TIS-620", /* IANA */
  599. "TIS620", /* glibc, HP-UX */
  600. "TIS620-0", /* glibc */
  601. "TIS620.2529-1", /* glibc */
  602. "TIS620.2533-0", /* glibc */
  603. "TIS620.2533-1",
  604. "ISO-IR-166", /* glibc */
  605. ),
  606. tis620,
  607. { tis620_mbtowc, NULL }, { tis620_wctomb, NULL })
  608. #ifdef USE_OSF1_ALIASES
  609. DEFALIAS( "TACTIS", /* OSF/1 */
  610. tis620)
  611. #endif
  612. #ifdef USE_SOLARIS_ALIASES
  613. DEFALIAS( "TIS620.2533", /* Solaris */
  614. tis620)
  615. #endif
  616. DEFENCODING(( "CP874", /* JDK 1.1 */
  617. "WINDOWS-874",
  618. ),
  619. cp874,
  620. { cp874_mbtowc, NULL }, { cp874_wctomb, NULL })
  621. DEFENCODING(( "VISCII", /* IANA, RFC 1456 */
  622. "VISCII1.1-1",
  623. "csVISCII", /* IANA */
  624. ),
  625. viscii,
  626. { viscii_mbtowc, NULL }, { viscii_wctomb, NULL })
  627. DEFENCODING(( "TCVN",
  628. "TCVN-5712",
  629. "TCVN5712-1",
  630. "TCVN5712-1:1993",
  631. ),
  632. tcvn,
  633. { tcvn_mbtowc, tcvn_flushwc }, { tcvn_wctomb, NULL })
  634. /* CJK character sets (not documented) */
  635. DEFENCODING(( "JIS_C6220-1969-RO", /* IANA */
  636. "ISO646-JP", /* IANA */
  637. "ISO-IR-14", /* IANA */
  638. "JP", /* IANA */
  639. "csISO14JISC6220ro", /* IANA */
  640. ),
  641. iso646_jp,
  642. { iso646_jp_mbtowc, NULL }, { iso646_jp_wctomb, NULL })
  643. DEFENCODING(( "JIS_X0201", /* IANA */
  644. "JISX0201-1976",
  645. "X0201", /* IANA */
  646. "csHalfWidthKatakana", /* IANA */
  647. /*"JISX0201.1976-0", X11R6.4 */
  648. /*"JIS0201", JDK 1.1 */
  649. ),
  650. jisx0201,
  651. { jisx0201_mbtowc, NULL }, { jisx0201_wctomb, NULL })
  652. DEFENCODING(( "JIS_X0208",
  653. "JIS_X0208-1983", /* IANA */
  654. "JIS_X0208-1990",
  655. "JIS0208",
  656. "X0208", /* IANA */
  657. "ISO-IR-87", /* IANA */
  658. "JIS_C6226-1983", /* IANA */
  659. "csISO87JISX0208", /* IANA */
  660. /*"JISX0208.1983-0", X11R6.4 */
  661. /*"JISX0208.1990-0", X11R6.4 */
  662. /*"JIS0208", JDK 1.1 */
  663. ),
  664. jisx0208,
  665. { jisx0208_mbtowc, NULL }, { jisx0208_wctomb, NULL })
  666. DEFENCODING(( "JIS_X0212",
  667. "JIS_X0212.1990-0",
  668. "JIS_X0212-1990", /* IANA */
  669. "X0212", /* IANA */
  670. "ISO-IR-159", /* IANA */
  671. "csISO159JISX02121990", /* IANA */
  672. /*"JISX0212.1990-0", X11R6.4 */
  673. /*"JIS0212", JDK 1.1 */
  674. ),
  675. jisx0212,
  676. { jisx0212_mbtowc, NULL }, { jisx0212_wctomb, NULL })
  677. DEFENCODING(( "GB_1988-80", /* IANA */
  678. "ISO646-CN", /* IANA */
  679. "ISO-IR-57", /* IANA */
  680. "CN", /* IANA */
  681. "csISO57GB1988", /* IANA */
  682. ),
  683. iso646_cn,
  684. { iso646_cn_mbtowc, NULL }, { iso646_cn_wctomb, NULL })
  685. DEFENCODING(( "GB_2312-80", /* IANA */
  686. "ISO-IR-58", /* IANA */
  687. "csISO58GB231280", /* IANA */
  688. "CHINESE", /* IANA */
  689. /*"GB2312.1980-0", X11R6.4 */
  690. ),
  691. gb2312,
  692. { gb2312_mbtowc, NULL }, { gb2312_wctomb, NULL })
  693. DEFENCODING(( "ISO-IR-165",
  694. "CN-GB-ISOIR165", /* RFC 1922 */
  695. ),
  696. isoir165,
  697. { isoir165_mbtowc, NULL }, { isoir165_wctomb, NULL })
  698. DEFENCODING(( "KSC_5601", /* IANA */
  699. "KS_C_5601-1987", /* IANA */
  700. "KS_C_5601-1989", /* IANA */
  701. "ISO-IR-149", /* IANA */
  702. "csKSC56011987", /* IANA */
  703. "KOREAN", /* IANA */
  704. /*"KSC5601.1987-0", X11R6.4 */
  705. /*"KSX1001:1992", Ken Lunde */
  706. ),
  707. ksc5601,
  708. { ksc5601_mbtowc, NULL }, { ksc5601_wctomb, NULL })
  709. /* CJK encodings */
  710. DEFENCODING(( "EUC-JP", /* IANA */
  711. "EUCJP", /* glibc, HP-UX, IRIX, OSF/1, Solaris */
  712. "Extended_UNIX_Code_Packed_Format_for_Japanese", /* IANA */
  713. "csEUCPkdFmtJapanese", /* IANA */
  714. /*"EUC_JP", JDK 1.1 */
  715. /*"CP51932", Windows */
  716. ),
  717. euc_jp,
  718. { euc_jp_mbtowc, NULL }, { euc_jp_wctomb, NULL })
  719. #ifdef USE_AIX_ALIASES
  720. DEFALIAS( "IBM-EUCJP", /* AIX */
  721. euc_jp)
  722. #endif
  723. #ifdef USE_OSF1_ALIASES
  724. DEFALIAS( "SDECKANJI", /* OSF/1 */
  725. euc_jp)
  726. #endif
  727. DEFENCODING(( "SHIFT_JIS", /* IANA */
  728. "SHIFT-JIS", /* glibc */
  729. "SJIS", /* JDK 1.1, HP-UX, OSF/1 */
  730. "MS_KANJI", /* IANA */
  731. "csShiftJIS", /* IANA */
  732. ),
  733. sjis,
  734. { sjis_mbtowc, NULL }, { sjis_wctomb, NULL })
  735. #ifdef USE_SOLARIS_ALIASES
  736. DEFALIAS( "PCK", /* Solaris */
  737. sjis)
  738. #endif
  739. DEFENCODING(( "CP932", /* glibc */
  740. ),
  741. cp932,
  742. { cp932_mbtowc, NULL }, { cp932_wctomb, NULL })
  743. #ifdef USE_AIX_ALIASES
  744. DEFALIAS( "IBM-932", /* AIX */
  745. cp932)
  746. #endif
  747. DEFENCODING(( "ISO-2022-JP", /* IANA, RFC 1468 */
  748. "csISO2022JP", /* IANA */
  749. /*"ISO2022JP", JDK 1.1 */
  750. ),
  751. iso2022_jp,
  752. { iso2022_jp_mbtowc, NULL }, { iso2022_jp_wctomb, iso2022_jp_reset })
  753. DEFENCODING(( "ISO-2022-JP-1", /* RFC 2237 */
  754. ),
  755. iso2022_jp1,
  756. { iso2022_jp1_mbtowc, NULL }, { iso2022_jp1_wctomb, iso2022_jp1_reset })
  757. DEFENCODING(( "ISO-2022-JP-2", /* IANA, RFC 1554 */
  758. "csISO2022JP2", /* IANA */
  759. ),
  760. iso2022_jp2,
  761. { iso2022_jp2_mbtowc, NULL }, { iso2022_jp2_wctomb, iso2022_jp2_reset })
  762. DEFENCODING(( "ISO-2022-JP-MS",
  763. "CP50221",
  764. /*"ISO-2022-JP-ESC", Windows */
  765. ),
  766. iso2022_jpms,
  767. { iso2022_jpms_mbtowc, NULL }, { iso2022_jpms_wctomb, iso2022_jpms_reset })
  768. DEFENCODING(( "EUC-CN", /* glibc */
  769. "EUCCN", /* glibc, IRIX */
  770. "GB2312", /* IANA */
  771. "CN-GB", /* RFC 1922 */
  772. "csGB2312", /* IANA */
  773. /*"EUC_CN", JDK 1.1 */
  774. /*"CP51936", Windows */
  775. ),
  776. euc_cn,
  777. { euc_cn_mbtowc, NULL }, { euc_cn_wctomb, NULL })
  778. #ifdef USE_AIX_ALIASES
  779. DEFALIAS( "IBM-EUCCN", /* AIX */
  780. euc_cn)
  781. #endif
  782. #ifdef USE_HPUX_ALIASES
  783. DEFALIAS( "HP15CN", /* HP-UX */
  784. euc_cn)
  785. #endif
  786. #ifdef USE_OSF1_ALIASES
  787. DEFALIAS( "DECHANZI", /* OSF/1 */
  788. euc_cn)
  789. #endif
  790. DEFENCODING(( "GBK", /* IANA, JDK 1.1 */
  791. ),
  792. ces_gbk,
  793. { ces_gbk_mbtowc, NULL }, { ces_gbk_wctomb, NULL })
  794. DEFENCODING(( "CP936", /* IANA */
  795. "MS936", /* IANA */
  796. "WINDOWS-936", /* IANA */
  797. ),
  798. cp936,
  799. { cp936_mbtowc, NULL }, { cp936_wctomb, NULL })
  800. DEFENCODING(( "GB18030", /* IANA, glibc */
  801. /*"CP54936", Windows */
  802. ),
  803. gb18030,
  804. { gb18030_mbtowc, NULL }, { gb18030_wctomb, NULL })
  805. DEFENCODING(( "ISO-2022-CN", /* IANA, RFC 1922 */
  806. "csISO2022CN",
  807. /*"ISO2022CN", JDK 1.1 */
  808. ),
  809. iso2022_cn,
  810. { iso2022_cn_mbtowc, NULL }, { iso2022_cn_wctomb, iso2022_cn_reset })
  811. DEFENCODING(( "ISO-2022-CN-EXT", /* IANA, RFC 1922 */
  812. ),
  813. iso2022_cn_ext,
  814. { iso2022_cn_ext_mbtowc, NULL }, { iso2022_cn_ext_wctomb, iso2022_cn_ext_reset })
  815. DEFENCODING(( "HZ", /* RFC 1843 */
  816. "HZ-GB-2312", /* IANA, RFC 1842 */
  817. /*"CP52936", Windows */
  818. ),
  819. hz,
  820. { hz_mbtowc, NULL }, { hz_wctomb, hz_reset })
  821. DEFENCODING(( "EUC-TW", /* glibc */
  822. "EUCTW", /* glibc, HP-UX, IRIX, OSF/1 */
  823. "csEUCTW",
  824. /*"EUC_TW", JDK 1.1 */
  825. /*"CP51950", Windows */
  826. ),
  827. euc_tw,
  828. { euc_tw_mbtowc, NULL }, { euc_tw_wctomb, NULL })
  829. #ifdef USE_AIX_ALIASES
  830. DEFALIAS( "IBM-EUCTW", /* AIX */
  831. euc_tw)
  832. #endif
  833. #ifdef USE_SOLARIS_ALIASES
  834. DEFALIAS( "CNS11643", /* Solaris */
  835. euc_tw)
  836. #endif
  837. DEFENCODING(( "BIG5", /* IANA, JDK 1.1 */
  838. "BIG-5", /* glibc */
  839. "BIG-FIVE", /* glibc */
  840. "BIGFIVE", /* glibc */
  841. "CN-BIG5", /* RFC 1922 */
  842. "csBig5", /* IANA */
  843. ),
  844. ces_big5,
  845. { ces_big5_mbtowc, NULL }, { ces_big5_wctomb, NULL })
  846. DEFENCODING(( "CP950", /* JDK 1.1 */
  847. ),
  848. cp950,
  849. { cp950_mbtowc, NULL }, { cp950_wctomb, NULL })
  850. DEFENCODING(( "BIG5-HKSCS:1999",
  851. ),
  852. big5hkscs1999,
  853. { big5hkscs1999_mbtowc, big5hkscs1999_flushwc }, { big5hkscs1999_wctomb, big5hkscs1999_reset })
  854. DEFENCODING(( "BIG5-HKSCS:2001",
  855. ),
  856. big5hkscs2001,
  857. { big5hkscs2001_mbtowc, big5hkscs2001_flushwc }, { big5hkscs2001_wctomb, big5hkscs2001_reset })
  858. DEFENCODING(( "BIG5-HKSCS:2004",
  859. ),
  860. big5hkscs2004,
  861. { big5hkscs2004_mbtowc, big5hkscs2004_flushwc }, { big5hkscs2004_wctomb, big5hkscs2004_reset })
  862. DEFENCODING(( "BIG5-HKSCS", /* IANA */
  863. "BIG5HKSCS", /* glibc */
  864. "BIG5-HKSCS:2008",
  865. ),
  866. big5hkscs2008,
  867. { big5hkscs2008_mbtowc, big5hkscs2008_flushwc }, { big5hkscs2008_wctomb, big5hkscs2008_reset })
  868. DEFENCODING(( "EUC-KR", /* IANA, RFC 1557 */
  869. "EUCKR", /* glibc, HP-UX, IRIX, OSF/1 */
  870. "csEUCKR", /* IANA */
  871. /*"EUC_KR", JDK 1.1 */
  872. /*"CP51949", Windows */
  873. ),
  874. euc_kr,
  875. { euc_kr_mbtowc, NULL }, { euc_kr_wctomb, NULL })
  876. #ifdef USE_AIX_ALIASES
  877. DEFALIAS( "IBM-EUCKR", /* AIX */
  878. euc_kr)
  879. #endif
  880. #ifdef USE_OSF1_ALIASES
  881. DEFALIAS( "DECKOREAN", /* OSF/1 */
  882. euc_kr)
  883. #endif
  884. #ifdef USE_SOLARIS_ALIASES
  885. DEFALIAS( "5601", /* Solaris */
  886. euc_kr)
  887. #endif
  888. DEFENCODING(( "CP949", /* JDK 1.1 */
  889. "UHC", /* glibc */
  890. ),
  891. cp949,
  892. { cp949_mbtowc, NULL }, { cp949_wctomb, NULL })
  893. #ifdef USE_OSF1_ALIASES
  894. DEFALIAS( "KSC5601", /* OSF/1 */
  895. cp949)
  896. #endif
  897. DEFENCODING(( "JOHAB", /* glibc */
  898. "CP1361", /* glibc */
  899. ),
  900. johab,
  901. { johab_mbtowc, NULL }, { johab_wctomb, NULL })
  902. #ifdef USE_SOLARIS_ALIASES
  903. DEFALIAS( "KO_KR.JOHAP92", /* Solaris */
  904. johab)
  905. #endif
  906. DEFENCODING(( "ISO-2022-KR", /* IANA, RFC 1557 */
  907. "csISO2022KR", /* IANA */
  908. /*"ISO2022KR", JDK 1.1 */
  909. /*"CP50225", Windows */
  910. ),
  911. iso2022_kr,
  912. { iso2022_kr_mbtowc, NULL }, { iso2022_kr_wctomb, iso2022_kr_reset })