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