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

标签 c++ unicode boost-asio

我正在编写一个使用 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/

相关文章:

python - 在 Mac OS X 上使用 Swig 将 C++ 包装到 Python

c++ - stack pop() 导致 "reference binding to misaligned address"错误

c++ - 关于 Protocol Buffer 事件的设计问题

emacs - Emacs 24.4.1 中的下标未正确显示

.net - 在 VB.NET 中将十六进制代码点转换为 Unicode 字符

c++ - 如何将 boost.Asio 与 MJPEG 一起使用?

c++ - 如何将类的静态方法引入命名空间?

c++ - 使用Boost asio接收命令并执行

c++ - 升压asio : Unable to read URL Body (JSON)

regex - utf8 在 perl 中为 CamelCase (WikiWord) 正确的正则表达式