赞
踩
我正在尝试读取具有BOM的UTF-16LE编码的文件.
我试过这段代码
#include
#include
#include
#include
int main() {
std::wifstream fin("/home/asutp/test");
fin.imbue(std::locale(fin.getloc(), new std::codecvt_utf16));
if (!fin) {
std::cout << "!fin" << std::endl;
return 1;
}
if (fin.eof()) {
std::cout << "fin.eof()" << std::endl;
return 1;
}
std::wstring wstr;
getline(fin, wstr);
std::wcout << wstr << std::endl;
if (wstr.find(L"Test") != std::string::npos) {
std::cout << "Found" << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
return 0;
}
该文件可以包含拉丁文和西里尔文.我用字符串“Testтест”创建了该文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。