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.
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.
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
.
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()
).