Что такое эквивалент Linux: MultiByteToWideChar & WideCharToMultiByte? - PullRequest
14 голосов
/ 18 июля 2010

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

Спасибо.

Ответы [ 2 ]

15 голосов
/ 19 июля 2010

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

не нужно
4 голосов
/ 19 июля 2010

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

...