迫切需要你的帮助。 “C:\ Temp \ 1(2).txt”是小端UTF16的测试文件:
3C 00 64 00 69 00 76 00 3E 00
<div>
尝试通过以下代码从此文件获取UTF8:
#include <vector>
#include <string>
#include <locale>
#include <codecvt>
#include <vector>
using std::string;
using std::wstring;
using std::vector;
std::ifstream logfile("C:\\Temp\\1 (2).txt", std::ios::binary);
vector<char> paste_code_buf((std::istreambuf_iterator<char>(logfile)), (std::istreambuf_iterator<char>()));
wstring paste_code;
paste_code.assign(paste_code_buf.begin(), paste_code_buf.end());
std::wstring_convert < std::codecvt_utf8_utf16 < wchar_t, 0x10ffffUL, std::little_endian>> cv;
string mbs = cv.to_bytes(paste_code);
在调试器(Visual Studio 2013)中查看mbs显示没有发生转换。 怎么了?