Запись символов Unicode к OStream

Я работаю с unicode/wide символами, и я пытаюсь создать toString метод (Java:: toString equiv). ostream обработает широкие символы, раз так есть ли способ предупредить потребителя потока, что это - выход unicode из него?

5
задан Cœur 29 June 2019 в 12:47
поделиться

1 ответ

Ни ostream , ни остальной C ++ ничего не знают о Unicode. Обычно вы пишете преобразование строк в C ++ следующим образом:

template<typename Char, typename Traits>
std::basic_ostream<Char, Traits>&
operator<<(std::basic_ostream<Char, Traits>& stream, const YourType& object) {
    return stream << object.a << object.b;  // or whatever
}

Получите ли вы что-то вроде Unicode, зависит от реализации. Потоки в C ++ никогда не являются текстовыми потоками в смысле Java, а строки C ++ не являются строками в смысле Java. Если вам нужна настоящая строка Unicode, вы можете взглянуть на библиотеку ICU .

3
ответ дан 15 December 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: