读ANSI、UTF-8、UTF-16文本文件

读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

猜你喜欢

转载自blog.csdn.net/qq_16334327/article/details/80720536