On Fri, Oct 27, 2000 at 08:48:37PM +0800, [EMAIL PROTECTED] wrote: > > If a program needs to take the currect locale name for specific reactions > (for example, read different configuration file), then the so-called > "official locale name" becomes important. Even it use "setlocale()" to > get the locale name and use "nl_langinfo()" to get the encoding name, > however the combination of them will not always result to the same string. > For example, in current glibc-2.2 we will get "zh_TW" + "big5", but in > other platform it might be "zh_TW.big5" + "big5" or other kinds. So, how > to write a "portable" program to overcome this situation?
Hello Hsieh, Here is my suggestion. Have a predefined internal (or call it "official") locale name for each supported locale. At runtime construct the locale name as following: get language_territory part from "setlocale", this part is pretty much standardized; get codeset part from "nl_langinfo" and normalize it as you will see a wide variation. Bruno Haible's libcharset does just that so it could be a help, at least a reference (I forgot his site, you could do a search). Regards, -rigel -- | This message was re-posted from [email protected] | and converted from gb2312 to big5 by an automatic gateway.

