【发布时间】:2023-03-18 16:49:02
【问题描述】:
我不知道它是否可能,但有没有办法检索文件的前 4 个字节(很可能是 BOM)以获得其编码类型(UTF-8、UTF-16LE、CP1252 , ETC...)。然后,如果所选文件以 UTF-8 编码,则在数组“tabBytes[]”中找到的值将类似于:
tabBytes[0] = 0xEF
tabBytes[1] = 0xBB
tabBytes[2] = 0xBF
tabBytes[3] = XXXX
感谢您抽出时间帮助我!我期待着阅读您的 cmets 和答案。
编辑:我是 C++ 新手,所以我之前写的代码可能是错误的,因此我将其删除。
最终编辑:感谢帮助我的人,我终于找到了解决问题的方法!
【问题讨论】:
-
您的新代码没有任何意义。您不能将字节分配给
std::string。你为什么要制作一个字符串数组?为什么要在堆上分配 4 个字节?为什么不把它们放在堆栈上一次呢?这样你就不需要临时内存、字符串或复制步骤了。 -
我该怎么做?就像之前评论中所说的那样,我是 C++ 新手,我真的不知道如何做这种事情,所以我的代码可能是错误的,这就是我寻求帮助的原因。