Это немного сложно, вы должны знать, что означают ваши внутренние wchar_t
s.( См. Здесь для небольшого обсуждения.) В основном вы должны общаться со средой через mbstowcs
/ wcstombs
, а с данными с известным кодированием через iconv
(преобразование из и в WCHAR_T).
(Исключением здесь является Windows, где вы не можете реально взаимодействовать со средой, но вы можете получить доступ к ней в широкой версии напрямую с помощью функций Windows API, и вы можете писать широкие строки непосредственно в окнах сообщений и т. Д..)
Тем не менее, если у вас есть внутренняя широкая строка, вы можете преобразовать ее в многобайтовую строку среды с помощью wcstombs
, или вы можете просто использовать printf("%ls", mywstr);
, которая выполняет преобразование для вас.Только не забудьте вызвать setlocale(LC_CTYPE, "")
в самом начале вашей программы.