В проекте XCode, если я использую std::cout
для записи на консоль, вывод прекрасен.std :: wcout для консольного окна в XCode
Однако, если я использую std::wcout
, я не получаю выход.
Я знаю, что это сложная проблема на C++, и я пытался найти конкретное решение в случае XCode. Несколько вещей, которые я обнаружил, что это было предложено должно работать стали:
std::cout.imbue(std::locale(""));
и
std::setlocale(LC_ALL, "");
Ни один из них сделали никакой разницы. Прежде чем я уйду в отставку, потратив следующую пару недель на изучение API-интерфейсов, чтобы писать на консоль, я подумал, что я проверил бы с уважаемой аудиторией.
[Update]
Я думаю, что причина этой проблемы у меня были на самом деле делать с конкретной кодировкой некоторых строк я пытаюсь напечатать.
Если я отправляю только строковый литерал, используя L"my string" syntax
, он работает! Похоже, это использует UTF32 - малое кодирование.
Однако, я смешал это со строками, которые я передал из кода Objective C++, используя кодировку NSUTF32BigEndianStringEncoding. Это сочетание кодировок, которые вызывают проблемы.
Думаю, мы можем считать этот вопрос закрытым. Спасибо за прочтение.
Спасибо за ответ. Думаю, я нашел причину своих проблем - обновляю свой вопрос сейчас ... – philsquared 2008-11-09 16:21:42