我在 ANSII 中有以下代码:
boost::asio::streambuf buffer;
std::ostream oss(&buffer);
boost::asio::async_write(socket_, buffer,
strand_.wrap(
boost::bind(&Connection::handleWrite, shared_from_this(),
boost::asio::placeholders::error)));
我需要将其转换为 UNICODE。我尝试了以下方法:
boost::asio::basic_streambuf<std::allocator<wchar_t>> buffer;
std::wostream oss(&buffer);
boost::asio::async_write(socket_, buffer,
strand_.wrap(
boost::bind(&Connection::handleWrite, shared_from_this(),
boost::asio::placeholders::error)));
有没有办法在 UNICODE 中使用 async_write()?
最佳答案
您需要知道您的数据以何种编码方式传入。
例如,在我的应用程序中,我知道 unicode 数据以 UTF-8 格式传入,因此我使用函数的普通 char
版本。然后我需要将缓冲区视为 unicode utf-8 数据 - 但一切都已接收/发送正常。
如果您使用不同的字符编码,那么您可能(或可能不会)像您尝试过的那样使用宽字符版本获得更好的里程数。
关于c++ - boost::asio::write UNICODE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8303425/