What is the Linux equivalent of: MultiByteToWideCh

2019-03-12 17:50发布

问题:

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.

回答1:

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.



回答2:

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