按照c++读取文本文件的编码

C++ read text file in accordance with the encoding

本文关键字:编码 文件 取文本 c++ 读取 按照      更新时间:2023-10-16

我知道文件编码很难确定。但是在c++中有解决这个问题的方法吗?(我没有找到合适的).

我需要确定文件的编码,并将其第一行读取为适当区域设置的字符串。

我怀疑有没有什么像样的解决办法。我会尽力解释的。只有当您或多或少知道编码应该在文件中时,才能定义编码。然后,您可以尝试猜测转换文件不同,并检查结果是否像您预期的那样。以俄语编码表为例。你有所有类型的变化,如KOI-8, CP1251, CP866,这不是结束=)。所有这些编码对俄罗斯符号都有不同的映射,所以如果你拿一个文本文件并阅读它,考虑错误的编码而不是正确的数据,你将得到由完全不同的字母组成的单词,尽管单词/空格和较低的ASCII表部分看起来绝对没问题。

关于UTF8/16等,您无法检测到它,但您可以检查输入文件内部没有非法序列,因此您可以尝试使用某些编码来处理它。

我认为最好的选择是首先尝试定义你计划检测的编码子集,并根据一定的标准设计检测算法。