boost::asio 不是完全符合 UNICODE 标准吗?

Isn't boost::asio fully UNICODE compliant?

本文关键字:标准 UNICODE asio boost 完全符合      更新时间:2023-10-16

我正在编写一个c++应用程序,它使用boost::asio进行一些http操作。我选择boost::asio,假设它完全兼容unicode。但是,我无法在UNICODE中编译,因为asio的某些部分硬编码为char。

例子:

#ifndef TCHAR
    #ifdef _UNICODE
        #define TCHAR wchar_t
    #else
        #define TCHAR char
    #endif
#endif
// The following lines only complile in MBCS and not in UNICODE.
boost::asio::basic_streambuf<std::allocator<TCHAR> > request;
std::basic_ostream<TCHAR, std::char_traits<TCHAR> > requestStream(&request);

boost::asio::read_until函数接受char作为分隔符。我做错什么了吗?请注意,我是unicode的新手,以前从未使用过。

boost::asio::basic_streambuf派生自std::streambuf而不是std::basic_streambuf,所以我怀疑boost::asio并不是真正的UNICODE兼容。

正确,boost::asio不兼容UNICODE。