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 23 extern "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. */ 32 extern 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