views:

309

answers:

2

I am working with a class that wraps the std::wstring, this code needs to be cross platform, are there equivalents to the windows functions: MultiByteToWideChar & WideCharToMultiByte on linux?

Thank you.

+6  A: 

The Linux equivalents are the iconv functions iconv_open, iconv and iconv_close (say man 3 iconv_open etc. for the documentation). For cross-platform applications, use dedicated libraries such as ICU instead. Such libraries already contain their own string classes; there is no need to wrap std::wstring.

Philipp
A: 

mbtowc and wctomb are the most direct equivalents, but note that they operate on the multibyte character set corresponding to the current LC_CTYPE locale (which can be changed with setlocale()).

caf