wstring の場合
#include <codecvt>
#include <iostream>
#include <locale>
#include <fstream>
int main()
{
std::basic_ifstream<wchar_t> ifs("C:\\hoge1.txt", std::ios::binary);
ifs.imbue(std::locale(
ifs.getloc(),
new std::codecvt_utf16<wchar_t, 0x10ffff, std::codecvt_mode( std::little_endian |std::consume_header)>));
std::vector<wchar_t> buf(100);
ifs.read(buf.data(), 100);
std::basic_string<wchar_t> istr(buf.data());
}
UTF16の場合
#include <codecvt>
#include <iostream>
#include <locale>
#include <fstream>
int main()
{
std::basic_ifstream<uint16_t> ifs("C:\\hoge1.txt", std::ios::binary);
ifs.imbue(std::locale(
ifs.getloc(),
new std::codecvt_utf16<uint16_t, 0x10ffff, std::codecvt_mode( std::little_endian |std::consume_header)>));
std::vector<uint16_t> buf(100);
ifs.read(buf.data(), 100);
std::basic_string<uint16_t> istr(buf.data());
}