首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++如何检索文件物料清单以获取其编码类型?

C++如何检索文件物料清单以获取其编码类型?
EN

Stack Overflow用户
提问于 2015-01-22 05:21:31
回答 1查看 78关注 0票数 1

我不知道这是否可能,但是有没有一种方法可以检索一个文件的前4个字节(最有可能是BOM),以便获得它的编码类型(UTF-8,UTF-16LE,CP1252,等等)。然后,如果所选文件是以UTF-8编码的,则在数组"tabBytes[]“中找到的值将类似于:

代码语言:javascript
复制
    tabBytes[0] = 0xEF
    tabBytes[1] = 0xBB
    tabBytes[2] = 0xBF
    tabBytes[3] = XXXX

感谢您抽出时间来帮助我!我期待着阅读您对此的评论和答案。

编辑:我是C++的新手,所以我之前写的代码可能是错误的,所以我把它删除了。

最后编辑:我终于找到了问题的解决方案,感谢那些帮助我的人!

EN

回答 1

Stack Overflow用户

发布于 2015-01-22 05:27:40

数组索引从0开始,所以您使用buffer[fourBytes] = '\0';写过了缓冲区的末尾。如果你想这样做,你需要分配fourBytes + 1字节。这应该会阻止在删除缓冲区时发生的崩溃。

然而,像这样空终止缓冲区的唯一原因是,如果您想要将其视为C样式字符串(例如,将其打印出来),而您似乎并没有这样做。您正在将其复制到tabBytes中,但是您正在而不是复制空终止符。所以还不清楚你到底想要实现什么。

从文件中读取前几个字节的总体逻辑很好。尽管基于上面的代码,但您可以直接将数据读取到tabBytes中,并取消buffer的分配/复制/释放。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28077059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档