在C++中读取未知编码的文本文件

ang*_*a d 2 c++ file-io utilities

我应该使用什么来读取我不知道其编码(ASCII或Unicode)的文本文件?

是否有一些类自动检测编码?

Hel*_*hne 6

我只能在这里给出否定答案:没有普遍正确的方法来确定文件的编码.ASCII文件可以作为ISO-8859-15编码读取,因为ASCII是一个子集.更糟糕的是,其他文件可能在两种具有不同含义的不同编码中有效.所以你需要通过其他方式获取这些信息.在许多情况下,假设一切都是UTF8是一个很好的方法.如果您正在使用*NIX环境,则LC_CTYPE变量可能会有所帮助.如果您不关心编码(例如,您不更改或处理内容),则可以将文件打开为二进制文件.