读ANSI正常读取时就可以,下面重点说读UTF-8、UTF-16
1、C++方法
读UTF-8:
std::string s; std::ifstream fcin; fcin.open(path, std::ios_base::in); getline(fcin, s);
之后将s由UTF-8转为ANSI就可以了,不过在读取时要注意跳过文件头BOM标志的三个字节。
读UTF-16
std::wstring ws; std::wifstream wfcin; wfcin.open(path, std::ios_base::in); getline(fcin, ws);
之后将ws由UTF-16转为ANSI就可以了,也要注意跳过BOM
2、vs方法
笔者采用vs中CFile派生类CStdioFile的ReadString方法读取一行数据。
方法1参考:https://blog.csdn.net/s634772208/article/details/71437603
方法2参考:https://blog.csdn.net/shijichao2/article/details/798531
读取到的字符串格式转换:https://blog.csdn.net/qq_16334327/article/details/80389964