代码之家  ›  专栏  ›  技术社区  ›  monksy

将unicode字符写入到ostream

  •  5
  • monksy  · 技术社区  · 14 年前

    我正在使用unicode/wide字符,并尝试创建toString方法( Java ::toString equiv )Ostream是否会处理宽字符,如果是这样,是否有一种方法来警告流的使用者它是Unicode输出的?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Philipp    14 年前

    既不 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 .