Подтвердить что ты не робот

Что такое эквивалент Linux: MultiByteToWideChar & WideCharToMultiByte?

Я работаю с классом, который обертывает std:: wstring, этот код должен быть кросс-платформой, есть ли эквиваленты для функций windows: MultiByteToWideChar и WideCharToMultiByte на linux?

Спасибо.

4b9b3361

Ответ 1

эквивалентами Linux являются iconv функции iconv_open, iconv и iconv_close (например, man 3 iconv_open и т.д. для документации). Для кросс-платформенных приложений вместо этого используйте специальные библиотеки, такие как ICU. Такие библиотеки уже содержат свои собственные классы строк; нет необходимости обертывать std::wstring.

Ответ 2

mbtowc и wctomb являются наиболее прямыми эквивалентами, но обратите внимание, что они работают с многобайтовым набором символов, соответствующим текущему языку LC_CTYPE (который можно изменить с помощью setlocale()).