: Sometimes I need to work with native encodings and can't convert them : to widechar though ... like Firebird -_-; although it'd be pretty nice : if everything in a BBS is in Unicode :p
This is the point: Do you want your BBS system go to internationalization or just a local program like before? If you want to go to i18n, then in your program you should not make any assumption on how to handle the characters. All of these details should left for libc to take care, even though you don't want to use Unicode. I mean, you can convert them using mbsrtowcs() to verify that they are valid characters, and handle the wide characters internally. When you want to output the characters in any form (print it out, or save to file, or pipe or translate to other program .... etc), then transform them back to multi-byte characters via wcsrtombs(). In this way you don't need to make any assumption of the encoding you are handling. However, doing this way you really have to modify your BBS program very much :-)) So, is it worth to do that? Is the BBS program suitable to become a I18N program? This depends on your policy. :-)) T.H.Hsieh

