5
我正在處理unicode/wide characters,並試圖創建一個toString方法(Java ::toString equiv)。 ostream會處理寬字符嗎?如果有的話,是否有辦法警告流的消費者它是unicode出來的?將Unicode字符寫入OStream
我正在處理unicode/wide characters,並試圖創建一個toString方法(Java ::toString equiv)。 ostream會處理寬字符嗎?如果有的話,是否有辦法警告流的消費者它是unicode出來的?將Unicode字符寫入OStream
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 library。