您可以使用以下函数将文件内容读入到
当然会没有效果。
char
数组中:void readFileContentsIntoCharArray(char* charArray, size_t sizeOfArray) {
std::ifstream inputFileStream;
inputFileStream.read(charArray, sizeOfArray);
}
现在文件是以UTF-16LE编码的,所以我想将文件内容读入一个char16_t
数组中,以便后续更方便地处理。我尝试了以下代码:
void readUTF16FileContentsIntoChar16Array(char16_t* char16Array, size_t sizeOfArray) {
std::ifstream inputFileStream;
inputFileStream.read(char16Array, sizeOfArray);
}
当然会没有效果。
std :: ifstream
不接受 char16_t
。我已经寻找解决方案很长时间了,但迄今为止发现的唯一相关方法是 https://dev59.com/-2PVa4cB1Zd3GeqP7Jrq#10504278 ,但它并没有提供太大帮助,因为它使用的是 wchar_t
而非 char16_t
。如何使用 char16_t
使其起作用?
2*sizeOfArray
字节,然后手动将每2个char
转换为char16_t
......如果架构是大端的话,你无法做得更好,如果是小端的话,你可以使用一些指针转换技巧。 - user202729iconv
。请告知文件制作者立即停止使用该编码方式,并改用UTF-8编码。 - n. m.