|
发表于 2005-10-3 19:00:32
|
显示全部楼层
- #ifdef HAVE_LANGINFO_CHARSET
- #include <langinfo.h>
- #endif
- const char *
- get_locale_charset (void)
- {
- static char lcharset[256] = "US-ASCII";
- static int once = 0;
- if (once)
- return lcharset;
- #ifdef HAVE_LANGINFO_CHARSET
- strcpy (lcharset, nl_langinfo(CHARSET));
- #else
- {
- char * lc, *cs;
- if (((lc = getenv("LC_ALL")) && *lc) ||
- ((lc = getenv("LC_CTYPE")) && *lc) ||
- ((lc = getenv("LANG")) && *lc)) {
- if ((cs = strchr(lc, '.')) && cs && cs[1] )
- strcpy (lcharset, cs + 1);
- else if (strstr (lc, "zh_CN") ||
- strstr (lc, "zh_SG"))
- strcpy (lcharset, "GB2312");
- else if (strstr (lc, "zh_TW") ||
- strstr (lc, "zh_HK"))
- strcpy (lcharset, "BIG5");
- }
- }
- #endif
- once = 1;
- return lcharset;
- }
- 这是我在 fcitx-cairo 里用的代码, 不知道有帮助没?
复制代码 |
|