///*
// * This C function returns a canonical name for the character encoding
// * used in the current locale. It returns NULL if it cannot be determined.
// *
// * This is an alternative to nl_langinfo(CODESET).
// */
//
//#include <stddef.h>
//#include <stdlib.h>
//#include <string.h>
//
//#define streq(s1,s2) (!strcmp(s1,s2))
//
//const char* locale_charset = NULL;
//
//const char* get_locale_charset ()
//{
//	// When you call setlocale(LC_CTYPE,""), is examines the environment
//	// variables:
//	// 1. environment variable LC_ALL - an override for all LC_* variables,
//	// 2. environment variable LC_CTYPE,
//	// 3. environment variable LANG - a default for all LC_* variables.
//	const char * locale;
//	locale = getenv("LC_ALL");
//	if (!locale || !*locale) {
//		locale = getenv("LC_CTYPE");
//		if (!locale || !*locale)
//			locale = getenv("LANG");
//	}
//	// Determine locale_charset from the environment variables.
//	// Unfortunately there is no documented way of getting the character set
//	// that was specified as part of the LC_CTYPE category. We have to parse
//	// the environment variables ourselves.
//	// Recall that a locale specification has the form
//	//   language_COUNTRY.charset
//	// but there are also aliases. Here is the union of what I found in
//	// /usr/X11R6/lib/X11/locale/locale.alias (X11R6) and
//	// /usr/share/locale/locale.alias (GNU libc2).
//	//
//	// X11R6 locale.alias:
//	//   POSIX                   C
//	//   POSIX-UTF2              C
//	//   C_C.C                   C
//	//   C.en                    C
//	//   C.iso88591              en_US.ISO8859-1
//	//   Cextend                 en_US.ISO8859-1
//	//   Cextend.en              en_US.ISO8859-1
//	//   English_United-States.437       C
//	//   #
//	//   ar                      ar_AA.ISO8859-6
//	//   ar_AA                   ar_AA.ISO8859-6
//	//   ar_AA.ISO_8859-6        ar_AA.ISO8859-6
//	//   ar_SA.iso88596          ar_AA.ISO8859-6
//	//   bg                      bg_BG.ISO8859-5
//	//   bg_BG                   bg_BG.ISO8859-5
//	//   bg_BG.ISO_8859-5        bg_BG.ISO8859-5
//	//   bg_BG.iso88595          bg_BG.ISO8859-5
//	//   cs                      cs_CZ.ISO8859-2
//	//   cs_CS                   cs_CZ.ISO8859-2
//	//   cs_CS.ISO8859-2         cs_CZ.ISO8859-2
//	//   cs_CS.ISO_8859-2        cs_CZ.ISO8859-2
//	//   cs_CZ.iso88592          cs_CZ.ISO8859-2
//	//   cz                      cz_CZ.ISO8859-2
//	//   cz_CZ                   cz_CZ.ISO8859-2
//	//   cs_CZ.ISO_8859-2        cs_CZ.ISO8859-2
//	//   da                      da_DK.ISO8859-1
//	//   da_DK                   da_DK.ISO8859-1
//	//   da_DK.88591             da_DK.ISO8859-1
//	//   da_DK.88591.en          da_DK.ISO8859-1
//	//   da_DK.iso88591          da_DK.ISO8859-1
//	//   da_DK.ISO_8859-1        da_DK.ISO8859-1
//	//   de                      de_DE.ISO8859-1
//	//   de_AT                   de_AT.ISO8859-1
//	//   de_AT.ISO_8859-1        de_AT.ISO8859-1
//	//   de_CH                   de_CH.ISO8859-1
//	//   de_CH.ISO_8859-1        de_CH.ISO8859-1
//	//   de_DE                   de_DE.ISO8859-1
//	//   de_DE.88591             de_DE.ISO8859-1
//	//   de_DE.88591.en          de_DE.ISO8859-1
//	//   de_DE.iso88591          de_DE.ISO8859-1
//	//   de_DE.ISO_8859-1        de_DE.ISO8859-1
//	//   GER_DE.8859             de_DE.ISO8859-1
//	//   GER_DE.8859.in          de_DE.ISO8859-1
//	//   el                      el_GR.ISO8859-7
//	//   el_GR                   el_GR.ISO8859-7
//	//   el_GR.iso88597          el_GR.ISO8859-7
//	//   el_GR.ISO_8859-7        el_GR.ISO8859-7
//	//   en                      en_US.ISO8859-1
//	//   en_AU                   en_AU.ISO8859-1
//	//   en_AU.ISO_8859-1        en_AU.ISO8859-1
//	//   en_CA                   en_CA.ISO8859-1
//	//   en_CA.ISO_8859-1        en_CA.ISO8859-1
//	//   en_GB                   en_GB.ISO8859-1
//	//   en_GB.88591             en_GB.ISO8859-1
//	//   en_GB.88591.en          en_GB.ISO8859-1
//	//   en_GB.iso88591          en_GB.ISO8859-1
//	//   en_GB.ISO_8859-1        en_GB.ISO8859-1
//	//   en_UK                   en_GB.ISO8859-1
//	//   ENG_GB.8859             en_GB.ISO8859-1
//	//   ENG_GB.8859.in          en_GB.ISO8859-1
//	//   en_IE                   en_IE.ISO8859-1
//	//   en_NZ                   en_NZ.ISO8859-1
//	//   en_US                   en_US.ISO8859-1
//	//   en_US.88591             en_US.ISO8859-1
//	//   en_US.88591.en          en_US.ISO8859-1
//	//   en_US.iso88591          en_US.ISO8859-1
//	//   en_US.ISO_8859-1        en_US.ISO8859-1
//	//   es                      es_ES.ISO8859-1
//	//   es_AR                   es_AR.ISO8859-1
//	//   es_BO                   es_BO.ISO8859-1
//	//   es_CL                   es_CL.ISO8859-1
//	//   es_CO                   es_CO.ISO8859-1
//	//   es_CR                   es_CR.ISO8859-1
//	//   es_EC                   es_EC.ISO8859-1
//	//   es_ES                   es_ES.ISO8859-1
//	//   es_ES.88591             es_ES.ISO8859-1
//	//   es_ES.88591.en          es_ES.ISO8859-1
//	//   es_ES.iso88591          es_ES.ISO8859-1
//	//   es_ES.ISO_8859-1        es_ES.ISO8859-1
//	//   es_GT                   es_GT.ISO8859-1
//	//   es_MX                   es_MX.ISO8859-1
//	//   es_NI                   es_NI.ISO8859-1
//	//   es_PA                   es_PA.ISO8859-1
//	//   es_PE                   es_PE.ISO8859-1
//	//   es_PY                   es_PY.ISO8859-1
//	//   es_SV                   es_SV.ISO8859-1
//	//   es_UY                   es_UY.ISO8859-1
//	//   es_VE                   es_VE.ISO8859-1
//	//   fi                      fi_FI.ISO8859-1
//	//   fi_FI                   fi_FI.ISO8859-1
//	//   fi_FI.88591             fi_FI.ISO8859-1
//	//   fi_FI.88591.en          fi_FI.ISO8859-1
//	//   fi_FI.iso88591          fi_FI.ISO8859-1
//	//   fi_FI.ISO_8859-1        fi_FI.ISO8859-1
//	//   fr                      fr_FR.ISO8859-1
//	//   fr_BE                   fr_BE.ISO8859-1
//	//   fr_BE.88591             fr_BE.ISO8859-1
//	//   fr_BE.88591.en          fr_BE.ISO8859-1
//	//   fr_BE.ISO_8859-1        fr_BE.ISO8859-1
//	//   fr_CA                   fr_CA.ISO8859-1
//	//   fr_CA.88591             fr_CA.ISO8859-1
//	//   fr_CA.88591.en          fr_CA.ISO8859-1
//	//   fr_CA.iso88591          fr_CA.ISO8859-1
//	//   fr_CA.ISO_8859-1        fr_CA.ISO8859-1
//	//   fr_CH                   fr_CH.ISO8859-1
//	//   fr_CH.88591             fr_CH.ISO8859-1
//	//   fr_CH.88591.en          fr_CH.ISO8859-1
//	//   fr_CH.ISO_8859-1        fr_CH.ISO8859-1
//	//   fr_FR                   fr_FR.ISO8859-1
//	//   fr_FR.88591             fr_FR.ISO8859-1
//	//   fr_FR.88591.en          fr_FR.ISO8859-1
//	//   fr_FR.iso88591          fr_FR.ISO8859-1
//	//   fr_FR.ISO_8859-1        fr_FR.ISO8859-1
//	//   FRE_FR.8859             fr_FR.ISO8859-1
//	//   FRE_FR.8859.in          fr_FR.ISO8859-1
//	//   he                      he_IL.ISO8859-8
//	//   he_IL                   he_IL.ISO8859-8
//	//   he_IL.iso88598          he_IL.ISO8859-8
//	//   hr                      hr_HR.ISO8859-2
//	//   hr_HR                   hr_HR.ISO8859-2
//	//   hr_HR.iso88592          hr_HR.ISO8859-2
//	//   hr_HR.ISO_8859-2        hr_HR.ISO8859-2
//	//   hu                      hu_HU.ISO8859-2
//	//   hu_HU                   hu_HU.ISO8859-2
//	//   hu_HU.iso88592          hu_HU.ISO8859-2
//	//   hu_HU.ISO_8859-2        hu_HU.ISO8859-2
//	//   is                      is_IS.ISO8859-1
//	//   is_IS                   is_IS.ISO8859-1
//	//   is_IS.iso88591          is_IS.ISO8859-1
//	//   is_IS.ISO_8859-1        is_IS.ISO8859-1
//	//   it                      it_IT.ISO8859-1
//	//   it_CH                   it_CH.ISO8859-1
//	//   it_CH.ISO_8859-1        it_CH.ISO8859-1
//	//   it_IT                   it_IT.ISO8859-1
//	//   it_IT.88591             it_IT.ISO8859-1
//	//   it_IT.88591.en          it_IT.ISO8859-1
//	//   it_IT.iso88591          it_IT.ISO8859-1
//	//   it_IT.ISO_8859-1        it_IT.ISO8859-1
//	//   iw                      iw_IL.ISO8859-8
//	//   iw_IL                   iw_IL.ISO8859-8
//	//   iw_IL.iso88598          iw_IL.ISO8859-8
//	//   iw_IL.ISO_8859-8        iw_IL.ISO8859-8
//	//   ja                      ja_JP.eucJP
//	//   ja_JP                   ja_JP.eucJP
//	//   ja_JP.ujis              ja_JP.eucJP
//	//   ja_JP.eucJP             ja_JP.eucJP
//	//   Jp_JP                   ja_JP.eucJP
//	//   ja_JP.AJEC              ja_JP.eucJP
//	//   ja_JP.EUC               ja_JP.eucJP
//	//   ja_JP.ISO-2022-JP       ja_JP.JIS7
//	//   ja_JP.JIS               ja_JP.JIS7
//	//   ja_JP.jis7              ja_JP.JIS7
//	//   ja_JP.mscode            ja_JP.SJIS
//	//   ja_JP.SJIS              ja_JP.SJIS
//	//   ko                      ko_KR.eucKR
//	//   ko_KR                   ko_KR.eucKR
//	//   ko_KR.EUC               ko_KR.eucKR
//	//   ko_KR.euc               ko_KR.eucKR
//	//   # most locales in FreeBSD 2.1.[56] do not work, allow use of generic latin-1
//	//   lt_LN.ISO_8859-1        lt_LN.ISO8859-1
//	//   mk                      mk_MK.ISO8859-5
//	//   mk_MK                   mk_MK.ISO8859-5
//	//   mk_MK.ISO_8859-5        mk_MK.ISO8859-5
//	//   nl                      nl_NL.ISO8859-1
//	//   nl_BE                   nl_BE.ISO8859-1
//	//   nl_BE.88591             nl_BE.ISO8859-1
//	//   nl_BE.88591.en          nl_BE.ISO8859-1
//	//   nl_BE.ISO_8859-1        nl_BE.ISO8859-1
//	//   nl_NL                   nl_NL.ISO8859-1
//	//   nl_NL.88591             nl_NL.ISO8859-1
//	//   nl_NL.88591.en          nl_NL.ISO8859-1
//	//   nl_NL.iso88591          nl_NL.ISO8859-1
//	//   nl_NL.ISO_8859-1        nl_NL.ISO8859-1
//	//   no                      no_NO.ISO8859-1
//	//   no_NO                   no_NO.ISO8859-1
//	//   no_NO.88591             no_NO.ISO8859-1
//	//   no_NO.88591.en          no_NO.ISO8859-1
//	//   no_NO.iso88591          no_NO.ISO8859-1
//	//   no_NO.ISO_8859-1        no_NO.ISO8859-1
//	//   pl                      pl_PL.ISO8859-2
//	//   pl_PL                   pl_PL.ISO8859-2
//	//   pl_PL.iso88592          pl_PL.ISO8859-2
//	//   pl_PL.ISO_8859-2        pl_PL.ISO8859-2
//	//   pt                      pt_PT.ISO8859-1
//	//   pt_BR                   pt_BR.ISO8859-1
//	//   pt_PT                   pt_PT.ISO8859-1
//	//   pt_PT.88591             pt_PT.ISO8859-1
//	//   pt_PT.88591.en          pt_PT.ISO8859-1
//	//   pt_PT.iso88591          pt_PT.ISO8859-1
//	//   pt_PT.ISO_8859-1        pt_PT.ISO8859-1
//	//   ro                      ro_RO.ISO8859-2
//	//   ro_RO                   ro_RO.ISO8859-2
//	//   ro_RO.iso88592          ro_RO.ISO8859-2
//	//   ro_RO.ISO_8859-2        ro_RO.ISO8859-2
//	//   ru                      ru_RU.ISO8859-5
//	//   ru_RU                   ru_RU.ISO8859-5
//	//   ru_RU.iso88595          ru_RU.ISO8859-5
//	//   ru_RU.ISO_8859-5        ru_RU.ISO8859-5
//	//   ru_SU                   ru_RU.ISO8859-5
//	//   ru_SU.ISO8859-5         ru_RU.ISO8859-5
//	//   ru_SU.ISO_8859-5        ru_RU.ISO8859-5
//	//   ru_SU.KOI8-R            ru_RU.KOI8-R
//	//   sh                      sh_YU.ISO8859-2
//	//   sh_YU                   sh_YU.ISO8859-2
//	//   sh_YU.ISO_8859-2        sh_YU.ISO8859-2
//	//   sh_SP                   sh_YU.ISO8859-2
//	//   sk                      sk_SK.ISO8859-2
//	//   sk_SK                   sk_SK.ISO8859-2
//	//   sk_SK.ISO_8859-2        sk_SK.ISO8859-2
//	//   sl                      sl_CS.ISO8859-2
//	//   sl_CS                   sl_CS.ISO8859-2
//	//   sl_CS.ISO_8859-2        sl_CS.ISO8859-2
//	//   sl_SI                   sl_SI.ISO8859-2
//	//   sl_SI.iso88592          sl_SI.ISO8859-2
//	//   sl_SI.ISO_8859-2        sl_SI.ISO8859-2
//	//   sp                      sp_YU.ISO8859-5
//	//   sp_YU                   sp_YU.ISO8859-5
//	//   sp_YU.ISO_8859-5        sp_YU.ISO8859-5
//	//   sr_SP                   sr_SP.ISO8859-2
//	//   sr_SP.ISO_8859-2        sr_SP.ISO8859-2
//	//   sv                      sv_SE.ISO8859-1
//	//   sv_SE                   sv_SE.ISO8859-1
//	//   sv_SE.88591             sv_SE.ISO8859-1
//	//   sv_SE.88591.en          sv_SE.ISO8859-1
//	//   sv_SE.iso88591          sv_SE.ISO8859-1
//	//   sv_SE.ISO_8859-1        sv_SE.ISO8859-1
//	//   th_TH                   th_TH.TACTIS
//	//   tr                      tr_TR.ISO8859-9
//	//   tr_TR                   tr_TR.ISO8859-9
//	//   tr_TR.iso88599          tr_TR.ISO8859-9
//	//   tr_TR.ISO_8859-9        tr_TR.ISO8859-9
//	//   zh                      zh_CN.eucCN
//	//   zh_CN                   zh_CN.eucCN
//	//   zh_CN.EUC               zh_CN.eucCN
//	//   zh_TW                   zh_TW.eucTW
//	//   zh_TW.EUC               zh_TW.eucTW
//	//   # The following locale names are used in SCO 3.0
//	//   english_uk.8859         en_GB.ISO8859-1
//	//   english_us.8859         en_US.ISO8859-1
//	//   english_us.ascii        en_US.ISO8859-1
//	//   french_france.8859      fr_FR.ISO8859-1
//	//   german_germany.8859     de_DE.ISO8859-1
//	//   portuguese_brazil.8859  pt_BR.ISO8859-1
//	//   spanish_spain.8859      es_ES.ISO8859-1
//	//   # The following locale names are used in HPUX 9.x
//	//   american.iso88591       en_US.ISO8859-1
//	//   arabic.iso88596         ar_AA.ISO8859-6
//	//   bulgarian               bg_BG.ISO8859-5
//	//   c-french.iso88591       fr_CA.ISO8859-1
//	//   chinese-s               zh_CN.eucCN
//	//   chinese-t               zh_TW.eucTW
//	//   croatian                hr_HR.ISO8859-2
//	//   czech                   cs_CS.ISO8859-2
//	//   danish.iso88591         da_DK.ISO8859-1
//	//   dutch.iso88591          nl_BE.ISO8859-1
//	//   english.iso88591        en_EN.ISO8859-1
//	//   finnish.iso88591        fi_FI.ISO8859-1
//	//   french.iso88591         fr_CH.ISO8859-1
//	//   german.iso88591         de_CH.ISO8859-1
//	//   greek.iso88597          el_GR.ISO8859-7
//	//   hebrew.iso88598         iw_IL.ISO8859-8
//	//   hungarian               hu_HU.ISO8859-2
//	//   icelandic.iso88591      is_IS.ISO8859-1
//	//   italian.iso88591        it_IT.ISO8859-1
//	//   japanese                ja_JP.SJIS
//	//   japanese.euc            ja_JP.eucJP
//	//   korean                  ko_KR.eucKR
//	//   norwegian.iso88591      no_NO.ISO8859-1
//	//   polish                  pl_PL.ISO8859-2
//	//   portuguese.iso88591     pt_PT.ISO8859-1
//	//   rumanian                ro_RO.ISO8859-2
//	//   russian                 ru_SU.ISO8859-5
//	//   serbocroatian           sh_YU.ISO8859-2
//	//   slovak                  sk_SK.ISO8859-2
//	//   slovene                 sl_CS.ISO8859-2
//	//   spanish.iso88591        es_ES.ISO8859-1
//	//   swedish.iso88591        sv_SE.ISO8859-1
//	//   turkish.iso88599        tr_TR.ISO8859-9
//	//   # Solaris and SunOS have iso_8859_1 LC_CTYPES to augment LANG=C
//	//   iso_8859_1              en_US.ISO8859-1
//	//   # Microsoft Windows/NT 3.51 Japanese Edition
//	//   Korean_Korea.949        ko_KR.eucKR
//	//   Japanese_Japan.932      ja_JP.SJIS
//	//   # Other miscellaneous locale names
//	//   ISO8859-1               en_US.ISO8859-1
//	//   ISO-8859-1              en_US.ISO8859-1
//	//   japan                   ja_JP.eucJP
//	//   Japanese-EUC            ja_JP.eucJP
//	//
//	// GNU locale.alias:
//	//   czech                   cs_CZ.ISO-8859-2
//	//   danish                  da_DK.ISO-8859-1
//	//   dansk                   da_DK.ISO-8859-1
//	//   deutsch                 de_DE.ISO-8859-1
//	//   dutch                   nl_NL.ISO-8859-1
//	//   finnish                 fi_FI.ISO-8859-1
//	//   fran#ais                fr_FR.ISO-8859-1
//	//   french                  fr_FR.ISO-8859-1
//	//   german                  de_DE.ISO-8859-1
//	//   greek                   el_GR.ISO-8859-7
//	//   hebrew                  iw_IL.ISO-8859-8
//	//   hungarian               hu_HU.ISO-8859-2
//	//   icelandic               is_IS.ISO-8859-1
//	//   italian                 it_IT.ISO-8859-1
//	//   japanese                ja_JP.SJIS
//	//   japanese.euc            ja_JP.eucJP
//	//   norwegian               no_NO.ISO-8859-1
//	//   polish                  pl_PL.ISO-8859-2
//	//   portuguese              pt_PT.ISO-8859-1
//	//   romanian                ro_RO.ISO-8859-2
//	//   russian                 ru_RU.ISO-8859-5
//	//   slovak                  sk_SK.ISO-8859-2
//	//   slovene                 sl_CS.ISO-8859-2
//	//   spanish                 es_ES.ISO-8859-1
//	//   swedish                 sv_SE.ISO-8859-1
//	//   turkish                 tr_TR.ISO-8859-9
//	//
//	if (locale && *locale) {
//		// The most general syntax of a locale (not all optional parts
//		// recognized by all systems) is
//		// language[_territory][.codeset][@modifier][+special][,[sponsor][_revision]]
//		// To retrieve the codeset, search the first dot. Stop searching when
//		// a '@' or '+' or ',' is encountered.
//		char* buf = (char*) malloc(strlen(locale)+1);
//		const char* codeset = NULL;
//		{
//			const char* cp = locale;
//			for (; *cp != '\0' && *cp != '@' && *cp != '+' && *cp != ','; cp++) {
//				if (*cp == '.') {
//					codeset = ++cp;
//					for (; *cp != '\0' && *cp != '@' && *cp != '+' && *cp != ','; cp++);
//					if (*cp != '\0') {
//						size_t n = cp - codeset;
//						memcpy(buf,codeset,n);
//						buf[n] = '\0';
//						codeset = buf;
//					}
//					break;
//				}
//			}
//		}
//		if (codeset) {
//			// Canonicalize the charset given after the dot.
//			if (   streq(codeset,"ISO8859-1")
//					|| streq(codeset,"ISO_8859-1")
//					|| streq(codeset,"iso88591")
//					|| streq(codeset,"88591")
//					|| streq(codeset,"88591.en")
//					|| streq(codeset,"8859")
//					|| streq(codeset,"8859.in")
//					|| streq(codeset,"ascii")
//			)
//				locale_charset = "ISO-8859-1";
//			else
//				if (   streq(codeset,"ISO8859-2")
//						|| streq(codeset,"ISO_8859-2")
//						|| streq(codeset,"iso88592")
//				)
//					locale_charset = "ISO-8859-2";
//				else
//					if (   streq(codeset,"ISO8859-5")
//							|| streq(codeset,"ISO_8859-5")
//							|| streq(codeset,"iso88595")
//					)
//						locale_charset = "ISO-8859-5";
//					else
//						if (   streq(codeset,"ISO8859-6")
//								|| streq(codeset,"ISO_8859-6")
//								|| streq(codeset,"iso88596")
//						)
//							locale_charset = "ISO-8859-6";
//						else
//							if (   streq(codeset,"ISO8859-7")
//									|| streq(codeset,"ISO_8859-7")
//									|| streq(codeset,"iso88597")
//							)
//								locale_charset = "ISO-8859-7";
//							else
//								if (   streq(codeset,"ISO8859-8")
//										|| streq(codeset,"iso88598")
//								)
//									locale_charset = "ISO-8859-8";
//								else
//									if (   streq(codeset,"ISO8859-9")
//											|| streq(codeset,"ISO_8859-9")
//											|| streq(codeset,"iso88599")
//									)
//										locale_charset = "ISO-8859-9";
//									else
//										if (streq(codeset,"KOI8-R"))
//											locale_charset = "KOI8-R";
//										else
//											if (streq(codeset,"KOI8-U"))
//												locale_charset = "KOI8-U";
//											else
//												if (   streq(codeset,"eucJP")
//														|| streq(codeset,"ujis")
//														|| streq(codeset,"AJEC")
//												)
//													locale_charset = "eucJP";
//												else
//													if (   streq(codeset,"JIS7")
//															|| streq(codeset,"jis7")
//															|| streq(codeset,"JIS")
//															|| streq(codeset,"ISO-2022-JP")
//													)
//														locale_charset = "ISO-2022-JP"; /* was: "JIS7"; */
//													else
//														if (   streq(codeset,"SJIS")
//																|| streq(codeset,"mscode")
//																|| streq(codeset,"932")
//														)
//															locale_charset = "SJIS";
//														else
//															if (   streq(codeset,"eucKR")
//																	|| streq(codeset,"949")
//															)
//																locale_charset = "eucKR";
//															else
//																if (streq(codeset,"eucCN"))
//																	locale_charset = "eucCN";
//																else
//																	if (streq(codeset,"eucTW"))
//																		locale_charset = "eucTW";
//																	else
//																		if (streq(codeset,"TACTIS"))
//																			locale_charset = "TIS-620"; /* was: "TACTIS"; */
//																		else
//																			if (streq(codeset,"EUC") || streq(codeset,"euc")) {
//																				if (locale[0]=='j' && locale[1]=='a')
//																					locale_charset = "eucJP";
//																				else if (locale[0]=='k' && locale[1]=='o')
//																					locale_charset = "eucKR";
//																				else if (locale[0]=='z' && locale[1]=='h' && locale[2]=='_') {
//																					if (locale[3]=='C' && locale[4]=='N')
//																						locale_charset = "eucCN";
//																					else if (locale[3]=='T' && locale[4]=='W')
//																						locale_charset = "eucTW";
//																				}
//																			}
//																			else
//																				// The following are CLISP extensions.
//																				if (   streq(codeset,"UTF-8")
//																						|| streq(codeset,"utf8")
//																				)
//																					locale_charset = "UTF-8";
//		} else {
//			// No dot found. Choose a default, based on locale.
//			if (   streq(locale,"iso_8859_1")
//					|| streq(locale,"ISO8859-1")
//					|| streq(locale,"ISO-8859-1")
//			)
//				locale_charset = "ISO-8859-1";
//			else
//				if (0)
//					locale_charset = "ISO-8859-2";
//				else
//					if (0)
//						locale_charset = "ISO-8859-5";
//					else
//						if (0)
//							locale_charset = "ISO-8859-6";
//						else
//							if (0)
//								locale_charset = "ISO-8859-7";
//							else
//								if (0)
//									locale_charset = "ISO-8859-8";
//								else
//									if (0)
//										locale_charset = "ISO-8859-9";
//									else
//										if (0)
//											locale_charset = "KOI8-R";
//										else
//											if (0)
//												locale_charset = "KOI8-U";
//											else
//												if (0)
//													locale_charset = "eucJP";
//												else
//													if (0)
//														locale_charset = "ISO-2022-JP"; /* was: "JIS7"; */
//													else
//														if (0)
//															locale_charset = "SJIS";
//														else
//															if (0)
//																locale_charset = "eucKR";
//															else
//																if (streq(locale,"zh_CN") || streq(locale,"zh")
//																)
//																	locale_charset = "eucCN";
//																else
//																	if (streq(locale,"zh_TW")
//																	)
//																		locale_charset = "eucTW";
//																	else
//																		if (0)
//																			locale_charset = "TIS-620"; /* was: "TACTIS"; */
//																		else {
//																			// Choose a default, based on the language only.
//																			const char* underscore = strchr(locale,'_');
//																			const char* lang;
//																			if (underscore) {
//																				size_t n = underscore - locale;
//																				memcpy(buf,locale,n);
//																				buf[n] = '\0';
//																				lang = buf;
//																			} else {
//																				lang = locale;
//																			}
//																			if (   streq(lang,"af") || streq(lang,"afrikaans")
//																					|| streq(lang,"ca") || streq(lang,"catalan")
//																					|| streq(lang,"da") || streq(lang,"danish") || streq(lang,"dansk")
//																					|| streq(lang,"de") || streq(lang,"german") || streq(lang,"deutsch")
//																					|| streq(lang,"en") || streq(lang,"english")
//																					|| streq(lang,"es") || streq(lang,"spanish")
//																					|| streq(lang,"eu") || streq(lang,"basque")
//																					|| streq(lang,"fi") || streq(lang,"finnish")
//																					|| streq(lang,"fo") || streq(lang,"faroese") || streq(lang,"faeroese")
//																					|| streq(lang,"fr") || streq(lang,"french")
//#ifndef ASCII_CHS
//																					|| streq(lang,"franais")
//#endif
//																					|| streq(lang,"ga") || streq(lang,"irish")
//																					|| streq(lang,"gd") || streq(lang,"scottish")
//																					|| streq(lang,"gl") || streq(lang,"galician")
//																					|| streq(lang,"is") || streq(lang,"icelandic")
//																					|| streq(lang,"it") || streq(lang,"italian")
//																					|| streq(lang,"nl") || streq(lang,"dutch")
//																					|| streq(lang,"no") || streq(lang,"norwegian")
//																					|| streq(lang,"pt") || streq(lang,"portuguese")
//																					|| streq(lang,"sv") || streq(lang,"swedish")
//																			)
//																				locale_charset = "ISO-8859-1";
//																			else
//																				if (   streq(lang,"cs") || streq(lang,"czech")
//																						|| streq(lang,"cz")
//																						|| streq(lang,"hr") || streq(lang,"croatian")
//																						|| streq(lang,"hu") || streq(lang,"hungarian")
//																						|| streq(lang,"pl") || streq(lang,"polish")
//																						|| streq(lang,"ro") || streq(lang,"romanian") || streq(lang,"rumanian")
//																						|| streq(lang,"sh") /* || streq(lang,"serbocroatian") ?? */
//																						|| streq(lang,"sk") || streq(lang,"slovak")
//																						|| streq(lang,"sl") || streq(lang,"slovene") || streq(lang,"slovenian")
//																						|| streq(lang,"sq") || streq(lang,"albanian")
//																				)
//																					locale_charset = "ISO-8859-2";
//																				else
//																					if (   streq(lang,"eo") || streq(lang,"esperanto")
//																							|| streq(lang,"mt") || streq(lang,"maltese")
//																					)
//																						locale_charset = "ISO-8859-3";
//																					else
//																						if (   streq(lang,"be") || streq(lang,"byelorussian")
//																								|| streq(lang,"bg") || streq(lang,"bulgarian")
//																								|| streq(lang,"mk") || streq(lang,"macedonian")
//																								|| streq(lang,"sp")
//																								|| streq(lang,"sr") || streq(lang,"serbian")
//																						)
//																							locale_charset = "ISO-8859-5";
//																						else
//																							if (streq(lang,"ar") || streq(lang,"arabic")
//																							)
//																								locale_charset = "ISO-8859-6";
//																							else
//																								if (streq(lang,"el") || streq(lang,"greek")
//																								)
//																									locale_charset = "ISO-8859-7";
//																								else
//																									if (streq(lang,"iw") || streq(lang,"he") || streq(lang,"hebrew")
//																									)
//																										locale_charset = "ISO-8859-8";
//																									else
//																										if (streq(lang,"tr") || streq(lang,"turkish")
//																										)
//																											locale_charset = "ISO-8859-9";
//																										else
//																											if (   streq(lang,"et") || streq(lang,"estonian")
//																													|| streq(lang,"lt") || streq(lang,"lithuanian")
//																													|| streq(lang,"lv") || streq(lang,"latvian")
//																											)
//																												locale_charset = "ISO-8859-10";
//																											else
//																												if (streq(lang,"ru") || streq(lang,"russian")
//																												)
//																													locale_charset = "KOI8-R";
//																												else
//																													if (streq(lang,"uk") || streq(lang,"ukrainian")
//																													)
//																														locale_charset = "KOI8-U";
//																													else
//																														if (   streq(lang,"ja")
//																																|| streq(lang,"Jp")
//																																|| streq(lang,"japan")
//																																|| streq(lang,"Japanese-EUC")
//																														)
//																															locale_charset = "eucJP";
//																														else
//																															if (0)
//																																locale_charset = "ISO-2022-JP"; /* was: "JIS7"; */
//																															else
//																																if (streq(lang,"japanese")
//																																)
//																																	locale_charset = "SJIS";
//																																else
//																																	if (streq(lang,"ko") || streq(lang,"korean")
//																																	)
//																																		locale_charset = "eucKR";
//																																	else
//																																		if (streq(lang,"chinese-s")
//																																		)
//																																			locale_charset = "eucCN";
//																																		else
//																																			if (streq(lang,"chinese-t")
//																																			)
//																																				locale_charset = "eucTW";
//																																			else
//																																				if (streq(lang,"th")
//																																				)
//																																					locale_charset = "TIS-620"; /* was: "TACTIS"; */
//																																				else {
//																																				}
//																		}
//		}
//		free(buf);
//	}
//	return locale_charset;
//}
