1/* Determine a canonical name for the current locale's character encoding.
2 Copyright (C) 2000-2003, 2009-2019 Free Software Foundation, Inc.
3 This file is part of the GNU CHARSET Library.
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
8 any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, see <https://www.gnu.org/licenses/>. */
17
18#ifndef _LOCALCHARSET_H
19#define _LOCALCHARSET_H
20
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26
27/* Determine the current locale's character encoding, and canonicalize it
28 into one of the canonical names listed below.
29 The result must not be freed; it is statically allocated.
30 If the canonical name cannot be determined, the result is a non-canonical
31 name. */
32extern const char * locale_charset (void);
33
34/* About GNU canonical names for character encodings:
35
36 Every canonical name must be supported by GNU libiconv. Support by GNU libc
37 is also desirable.
38
39 The name is case insensitive. Usually an upper case MIME charset name is
40 preferred.
41
42 The current list of these GNU canonical names is:
43
44 name MIME? used by which systems
45 (darwin = Mac OS X, windows = native Windows)
46
47 ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin
48 ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
49 ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
50 ISO-8859-3 Y glibc solaris cygwin
51 ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin
52 ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
53 ISO-8859-6 Y glibc aix hpux solaris cygwin
54 ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
55 ISO-8859-8 Y glibc aix hpux osf solaris cygwin
56 ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin
57 ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin
58 ISO-8859-14 glibc cygwin
59 ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin
60 KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin
61 KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin
62 KOI8-T glibc
63 CP437 dos
64 CP775 dos
65 CP850 aix osf dos
66 CP852 dos
67 CP855 dos
68 CP856 aix
69 CP857 dos
70 CP861 dos
71 CP862 dos
72 CP864 dos
73 CP865 dos
74 CP866 freebsd netbsd openbsd darwin dos
75 CP869 dos
76 CP874 windows dos
77 CP922 aix
78 CP932 aix cygwin windows dos
79 CP943 aix
80 CP949 osf darwin windows dos
81 CP950 windows dos
82 CP1046 aix
83 CP1124 aix
84 CP1125 dos
85 CP1129 aix
86 CP1131 freebsd darwin
87 CP1250 windows
88 CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows
89 CP1252 aix windows
90 CP1253 windows
91 CP1254 windows
92 CP1255 glibc windows
93 CP1256 windows
94 CP1257 windows
95 GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin
96 EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin
97 EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin
98 EUC-TW glibc aix hpux irix osf solaris netbsd
99 BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin
100 BIG5-HKSCS glibc hpux solaris netbsd darwin
101 GBK glibc aix osf solaris freebsd darwin cygwin windows dos
102 GB18030 glibc hpux solaris freebsd netbsd darwin
103 SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin
104 JOHAB glibc solaris windows
105 TIS-620 glibc aix hpux osf solaris cygwin
106 VISCII Y glibc
107 TCVN5712-1 glibc
108 ARMSCII-8 glibc freebsd netbsd darwin
109 GEORGIAN-PS glibc cygwin
110 PT154 glibc netbsd cygwin
111 HP-ROMAN8 hpux
112 HP-ARABIC8 hpux
113 HP-GREEK8 hpux
114 HP-HEBREW8 hpux
115 HP-TURKISH8 hpux
116 HP-KANA8 hpux
117 DEC-KANJI osf
118 DEC-HANYU osf
119 UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin
120
121 Note: Names which are not marked as being a MIME name should not be used in
122 Internet protocols for information interchange (mail, news, etc.).
123
124 Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
125 must understand both names and treat them as equivalent.
126 */
127
128
129#ifdef __cplusplus
130}
131#endif
132
133
134#endif /* _LOCALCHARSET_H */
135