Я пользуюсь библиотекой ICU в C++ на OS X. Всеми моими строками является UnicodeStrings, но я должен использовать системные вызовы как fopen, освобожденный и т.д. Эти функции берут символ константы* или символ* как аргументы. Я считал тот OS X поддержки UTF-8 внутренне, так, чтобы все, что я должен сделать, было преобразованием мой UnicodeString к UTF-8, но я не знаю, как сделать это.
UnicodeString имеет toUTF8 () функция членства, но он возвращает ByteSink. Я также нашел эти примеры: http://source.icu-project.org/repos/icu/icu/trunk/source/samples/ucnv/convsamp.cpp и чтение об использовании преобразователя, но я все еще смущен. Любая справка очень ценилась бы.
call UnicodeString :: extract (. ..)
для извлечения в char *, передайте NULL для конвертера, чтобы получить конвертер по умолчанию (который находится в кодировке, которую будет использовать ваша ОС).