2 # Output a system dependent table of character encoding aliases.
4 # Copyright (C) 2000-2004, 2006-2012 Free Software Foundation, Inc.
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2, or (at your option)
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License along
17 # with this program; if not, write to the Free Software Foundation,
18 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 # The table consists of lines of the form
23 # ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
24 # ALIAS is compared in a case sensitive way.
26 # CANONICAL is the GNU canonical name for this character encoding.
27 # It must be an encoding supported by libiconv. Support by GNU libc is
28 # also desirable. CANONICAL is case insensitive. Usually an upper case
29 # MIME charset name is preferred.
30 # The current list of GNU canonical charset names is as follows.
32 # name MIME? used by which systems
33 # (darwin = MacOS X, woe32 = native Windows)
35 # ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin cygwin
36 # ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
37 # ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
38 # ISO-8859-3 Y glibc solaris cygwin
39 # ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin
40 # ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
41 # ISO-8859-6 Y glibc aix hpux solaris cygwin
42 # ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin cygwin
43 # ISO-8859-8 Y glibc aix hpux osf solaris cygwin
44 # ISO-8859-9 Y glibc aix hpux irix osf solaris darwin cygwin
45 # ISO-8859-13 glibc netbsd openbsd darwin cygwin
46 # ISO-8859-14 glibc cygwin
47 # ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin cygwin
48 # KOI8-R Y glibc solaris freebsd netbsd openbsd darwin
49 # KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin
62 # CP866 freebsd netbsd openbsd darwin dos
66 # CP932 aix cygwin woe32 dos
68 # CP949 osf darwin woe32 dos
76 # CP1251 glibc solaris netbsd openbsd darwin cygwin woe32
83 # GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin
84 # EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin
85 # EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin
86 # EUC-TW glibc aix hpux irix osf solaris netbsd
87 # BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin
88 # BIG5-HKSCS glibc solaris darwin
89 # GBK glibc aix osf solaris darwin cygwin woe32 dos
90 # GB18030 glibc solaris netbsd darwin
91 # SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin
92 # JOHAB glibc solaris woe32
93 # TIS-620 glibc aix hpux osf solaris cygwin
96 # ARMSCII-8 glibc darwin
97 # GEORGIAN-PS glibc cygwin
107 # UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin
109 # Note: Names which are not marked as being a MIME name should not be used in
110 # Internet protocols for information interchange (mail, news, etc.).
112 # Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
113 # must understand both names and treat them as equivalent.
115 # The first argument passed to this file is the canonical host specification,
116 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
118 # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
121 os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
122 echo "# This file contains a table of character encoding aliases,"
123 echo "# suitable for operating system '${os}'."
124 echo "# It was automatically generated from config.charset."
125 # List of references, updated during installation:
126 echo "# Packages using this file: "
129 # Linux libc5 doesn't have nl_langinfo(CODESET); therefore
130 # localcharset.c falls back to using the full locale name
131 # from the environment variables.
134 for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
135 en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
136 en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
137 es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
138 et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
139 fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
140 it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
143 echo "$l.iso-8859-1 ISO-8859-1"
144 echo "$l.iso-8859-15 ISO-8859-15"
145 echo "$l.iso-8859-15@euro ISO-8859-15"
146 echo "$l@euro ISO-8859-15"
147 echo "$l.cp-437 CP437"
148 echo "$l.cp-850 CP850"
149 echo "$l.cp-1252 CP1252"
150 echo "$l.cp-1252@euro CP1252"
151 #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
152 echo "$l.utf-8 UTF-8"
153 echo "$l.utf-8@euro UTF-8"
155 for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
156 sl_SI sr sr_CS sr_YU; do
158 echo "$l.iso-8859-2 ISO-8859-2"
159 echo "$l.cp-852 CP852"
160 echo "$l.cp-1250 CP1250"
161 echo "$l.utf-8 UTF-8"
163 for l in mk mk_MK ru ru_RU; do
165 echo "$l.iso-8859-5 ISO-8859-5"
166 echo "$l.koi8-r KOI8-R"
167 echo "$l.cp-866 CP866"
168 echo "$l.cp-1251 CP1251"
169 echo "$l.utf-8 UTF-8"
171 for l in ar ar_SA; do
173 echo "$l.iso-8859-6 ISO-8859-6"
174 echo "$l.cp-864 CP864"
175 #echo "$l.cp-868 CP868" # not a commonly used encoding
176 echo "$l.cp-1256 CP1256"
177 echo "$l.utf-8 UTF-8"
179 for l in el el_GR gr gr_GR; do
181 echo "$l.iso-8859-7 ISO-8859-7"
182 echo "$l.cp-869 CP869"
183 echo "$l.cp-1253 CP1253"
184 echo "$l.cp-1253@euro CP1253"
185 echo "$l.utf-8 UTF-8"
186 echo "$l.utf-8@euro UTF-8"
188 for l in he he_IL iw iw_IL; do
190 echo "$l.iso-8859-8 ISO-8859-8"
191 echo "$l.cp-862 CP862"
192 echo "$l.cp-1255 CP1255"
193 echo "$l.utf-8 UTF-8"
195 for l in tr tr_TR; do
197 echo "$l.iso-8859-9 ISO-8859-9"
198 echo "$l.cp-857 CP857"
199 echo "$l.cp-1254 CP1254"
200 echo "$l.utf-8 UTF-8"
202 for l in lt lt_LT lv lv_LV; do
203 #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
204 echo "$l ISO-8859-13"
206 for l in ru_UA uk uk_UA; do
209 for l in zh zh_CN; do
210 #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
213 for l in ja ja_JP ja_JP.EUC; do
216 for l in ko ko_KR; do
219 for l in th th_TH; do
222 for l in fa fa_IR; do
223 #echo "$l ISIRI-3342" # a broken encoding
224 echo "$l.utf-8 UTF-8"
228 # With glibc-2.1 or newer, we don't need any canonicalization,
229 # because glibc has iconv and both glibc and libiconv support all
230 # GNU canonical names directly. Therefore, the Makefile does not
231 # need to install the alias file at all.
232 # The following applies only to glibc-2.0.x and older libcs.
233 echo "ISO_646.IRV:1983 ASCII"
236 echo "ISO8859-1 ISO-8859-1"
237 echo "ISO8859-2 ISO-8859-2"
238 echo "ISO8859-5 ISO-8859-5"
239 echo "ISO8859-6 ISO-8859-6"
240 echo "ISO8859-7 ISO-8859-7"
241 echo "ISO8859-8 ISO-8859-8"
242 echo "ISO8859-9 ISO-8859-9"
243 echo "ISO8859-15 ISO-8859-15"
246 echo "IBM-921 ISO-8859-13"
250 echo "IBM-1046 CP1046"
251 echo "IBM-1124 CP1124"
252 echo "IBM-1129 CP1129"
253 echo "IBM-1252 CP1252"
254 echo "IBM-eucCN GB2312"
255 echo "IBM-eucJP EUC-JP"
256 echo "IBM-eucKR EUC-KR"
257 echo "IBM-eucTW EUC-TW"
260 echo "TIS-620 TIS-620"
264 echo "iso88591 ISO-8859-1"
265 echo "iso88592 ISO-8859-2"
266 echo "iso88595 ISO-8859-5"
267 echo "iso88596 ISO-8859-6"
268 echo "iso88597 ISO-8859-7"
269 echo "iso88598 ISO-8859-8"
270 echo "iso88599 ISO-8859-9"
271 echo "iso885915 ISO-8859-15"
272 echo "roman8 HP-ROMAN8"
273 echo "arabic8 HP-ARABIC8"
274 echo "greek8 HP-GREEK8"
275 echo "hebrew8 HP-HEBREW8"
276 echo "turkish8 HP-TURKISH8"
277 echo "kana8 HP-KANA8"
278 echo "tis620 TIS-620"
284 #echo "ccdc ?" # what is this?
285 echo "SJIS SHIFT_JIS"
289 echo "ISO8859-1 ISO-8859-1"
290 echo "ISO8859-2 ISO-8859-2"
291 echo "ISO8859-5 ISO-8859-5"
292 echo "ISO8859-7 ISO-8859-7"
293 echo "ISO8859-9 ISO-8859-9"
300 echo "ISO8859-1 ISO-8859-1"
301 echo "ISO8859-2 ISO-8859-2"
302 echo "ISO8859-4 ISO-8859-4"
303 echo "ISO8859-5 ISO-8859-5"
304 echo "ISO8859-7 ISO-8859-7"
305 echo "ISO8859-8 ISO-8859-8"
306 echo "ISO8859-9 ISO-8859-9"
307 echo "ISO8859-15 ISO-8859-15"
310 echo "dechanyu DEC-HANYU"
311 echo "dechanzi GB2312"
312 echo "deckanji DEC-KANJI"
313 echo "deckorean EUC-KR"
319 echo "sdeckanji EUC-JP"
320 echo "SJIS SHIFT_JIS"
321 echo "TACTIS TIS-620"
326 echo "ISO8859-1 ISO-8859-1"
327 echo "ISO8859-2 ISO-8859-2"
328 echo "ISO8859-3 ISO-8859-3"
329 echo "ISO8859-4 ISO-8859-4"
330 echo "ISO8859-5 ISO-8859-5"
331 echo "ISO8859-6 ISO-8859-6"
332 echo "ISO8859-7 ISO-8859-7"
333 echo "ISO8859-8 ISO-8859-8"
334 echo "ISO8859-9 ISO-8859-9"
335 echo "ISO8859-15 ISO-8859-15"
337 echo "ansi-1251 CP1251"
339 echo "Big5-HKSCS BIG5-HKSCS"
342 echo "GB18030 GB18030"
343 echo "cns11643 EUC-TW"
345 echo "ko_KR.johap92 JOHAB"
348 echo "TIS620.2533 TIS-620"
349 #echo "sun_eu_greek ?" # what is this?
353 # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
354 # localcharset.c falls back to using the full locale name
355 # from the environment variables.
356 # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
357 # reuse FreeBSD's locale data for OS/2.
359 echo "US-ASCII ASCII"
360 for l in la_LN lt_LN; do
361 echo "$l.ASCII ASCII"
363 for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
364 fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
365 lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
366 echo "$l.ISO_8859-1 ISO-8859-1"
367 echo "$l.DIS_8859-15 ISO-8859-15"
369 for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
370 echo "$l.ISO_8859-2 ISO-8859-2"
372 for l in la_LN lt_LT; do
373 echo "$l.ISO_8859-4 ISO-8859-4"
375 for l in ru_RU ru_SU; do
376 echo "$l.KOI8-R KOI8-R"
377 echo "$l.ISO_8859-5 ISO-8859-5"
378 echo "$l.CP866 CP866"
380 echo "uk_UA.KOI8-U KOI8-U"
381 echo "zh_TW.BIG5 BIG5"
382 echo "zh_TW.Big5 BIG5"
383 echo "zh_CN.EUC GB2312"
384 echo "ja_JP.EUC EUC-JP"
385 echo "ja_JP.SJIS SHIFT_JIS"
386 echo "ja_JP.Shift_JIS SHIFT_JIS"
387 echo "ko_KR.EUC EUC-KR"
391 echo "ISO8859-1 ISO-8859-1"
392 echo "ISO8859-2 ISO-8859-2"
393 echo "ISO8859-4 ISO-8859-4"
394 echo "ISO8859-5 ISO-8859-5"
395 echo "ISO8859-7 ISO-8859-7"
396 echo "ISO8859-13 ISO-8859-13"
397 echo "ISO8859-15 ISO-8859-15"
403 echo "SJIS SHIFT_JIS"
407 echo "ISO8859-1 ISO-8859-1"
408 echo "ISO8859-2 ISO-8859-2"
409 echo "ISO8859-4 ISO-8859-4"
410 echo "ISO8859-5 ISO-8859-5"
411 echo "ISO8859-7 ISO-8859-7"
412 echo "ISO8859-13 ISO-8859-13"
413 echo "ISO8859-15 ISO-8859-15"
416 # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
417 # localcharset.c falls back to using the full locale name
418 # from the environment variables.
420 for l in en_AU en_CA en_GB en_US la_LN; do
421 echo "$l.US-ASCII ASCII"
423 for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
424 fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
425 nl_NL no_NO pt_PT sv_SE; do
427 echo "$l.ISO8859-1 ISO-8859-1"
428 echo "$l.ISO8859-15 ISO-8859-15"
431 echo "$l.ISO8859-1 ISO-8859-1"
432 echo "$l.ISO8859-15 ISO-8859-15"
434 for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
435 echo "$l.ISO8859-2 ISO-8859-2"
437 for l in la_LN lt_LT; do
438 echo "$l.ISO8859-4 ISO-8859-4"
441 echo "$l.KOI8-R KOI8-R"
442 echo "$l.ISO8859-5 ISO-8859-5"
443 echo "$l.CP866 CP866"
446 echo "$l.CP1251 CP1251"
448 echo "uk_UA.KOI8-U KOI8-U"
449 echo "zh_TW.BIG5 BIG5"
450 echo "zh_TW.Big5 BIG5"
451 echo "zh_CN.EUC GB2312"
452 echo "ja_JP.EUC EUC-JP"
453 echo "ja_JP.SJIS SHIFT_JIS"
454 echo "ko_KR.EUC EUC-KR"
457 # Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is
459 # - It returns the empty string when LANG is set to a locale of the
460 # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
462 # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
463 # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
464 # - The documentation says:
465 # "... all code that calls BSD system routines should ensure
466 # that the const *char parameters of these routines are in UTF-8
467 # encoding. All BSD system functions expect their string
468 # parameters to be in UTF-8 encoding and nothing else."
470 # "An additional caveat is that string parameters for files,
471 # paths, and other file-system entities must be in canonical
472 # UTF-8. In a canonical UTF-8 Unicode string, all decomposable
473 # characters are decomposed ..."
474 # but this is not true: You can pass non-decomposed UTF-8 strings
475 # to file system functions, and it is the OS which will convert
476 # them to decomposed UTF-8 before accessing the file system.
477 # - The Apple Terminal application displays UTF-8 by default.
478 # - However, other applications are free to use different encodings:
479 # - xterm uses ISO-8859-1 by default.
480 # - TextEdit uses MacRoman by default.
481 # We prefer UTF-8 over decomposed UTF-8-MAC because one should
482 # minimize the use of decomposed Unicode. Unfortunately, through the
483 # Darwin file system, decomposed UTF-8 strings are leaked into user
484 # space nevertheless.
485 # Then there are also the locales with encodings other than US-ASCII
486 # and UTF-8. These locales can be occasionally useful to users (e.g.
487 # when grepping through ISO-8859-1 encoded text files), when all their
488 # file names are in US-ASCII.
489 echo "ISO8859-1 ISO-8859-1"
490 echo "ISO8859-2 ISO-8859-2"
491 echo "ISO8859-4 ISO-8859-4"
492 echo "ISO8859-5 ISO-8859-5"
493 echo "ISO8859-7 ISO-8859-7"
494 echo "ISO8859-9 ISO-8859-9"
495 echo "ISO8859-13 ISO-8859-13"
496 echo "ISO8859-15 ISO-8859-15"
508 echo "Big5HKSCS BIG5-HKSCS"
510 echo "GB18030 GB18030"
511 echo "SJIS SHIFT_JIS"
512 echo "ARMSCII-8 ARMSCII-8"
518 # BeOS and Haiku have a single locale, and it has UTF-8 encoding.
522 # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
523 # localcharset.c falls back to using the full locale name
524 # from the environment variables.
526 echo "# The encodings given here may not all be correct."
527 echo "# If you find that the encoding given for your language and"
528 echo "# country is not the one your DOS machine actually uses, just"
529 echo "# correct it in this file, and send a mail to"
530 echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>"
531 echo "# and Bruno Haible <bruno@clisp.org>."
534 # ISO-8859-1 languages
537 echo "da CP865" # not CP850 ??
538 echo "da_DK CP865" # not CP850 ??
544 echo "en_AU CP850" # not CP437 ??
549 echo "en_ZA CP850" # not CP437 ??
587 echo "id CP850" # not CP437 ??
588 echo "id_ID CP850" # not CP437 ??
589 echo "is CP861" # not CP850 ??
590 echo "is_IS CP861" # not CP850 ??
598 echo "nb CP865" # not CP850 ??
599 echo "nb_NO CP865" # not CP850 ??
603 echo "nn CP865" # not CP850 ??
604 echo "nn_NO CP865" # not CP850 ??
605 echo "no CP865" # not CP850 ??
606 echo "no_NO CP865" # not CP850 ??
612 # ISO-8859-2 languages
629 echo "sr CP852" # CP852 or CP866 or CP855 ??
630 echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
631 echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
632 # ISO-8859-3 languages
635 # ISO-8859-5 languages
638 echo "bg CP866" # not CP855 ??
639 echo "bg_BG CP866" # not CP855 ??
640 echo "mk CP866" # not CP855 ??
641 echo "mk_MK CP866" # not CP855 ??
646 # ISO-8859-6 languages
660 # ISO-8859-7 languages
663 # ISO-8859-8 languages
666 # ISO-8859-9 languages
674 echo "zh_TW CP950" # not CP938 ??
676 echo "kr CP949" # not CP934 ??
677 echo "kr_KR CP949" # not CP934 ??