我正在编写一个使用 boost::asio 进行某些 http 操作的 C++ 应用程序。我选择了 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。
关于c++ - boost::asio 不是完全符合 UNICODE 标准吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7687279/