Что такое эквивалент Linux: MultiByteToWideChar & WideCharToMultiByte?
Я работаю с классом, который обертывает std:: wstring, этот код должен быть кросс-платформой, есть ли эквиваленты для функций windows: MultiByteToWideChar и WideCharToMultiByte на linux?
Спасибо.
Ответ 1
эквивалентами Linux являются iconv функции iconv_open, iconv и iconv_close (например, man 3 iconv_open и т.д. для документации). Для кросс-платформенных приложений вместо этого используйте специальные библиотеки, такие как ICU. Такие библиотеки уже содержат свои собственные классы строк; нет необходимости обертывать std::wstring.
Ответ 2
mbtowc и wctomb являются наиболее прямыми эквивалентами, но обратите внимание, что они работают с многобайтовым набором символов, соответствующим текущему языку LC_CTYPE (который можно изменить с помощью setlocale()).