如何使用C ++消除记事本.txt文件中的BOM? [重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我想使用来自库fstream的ifstream fin读取.txt文件,但是在文件开头有一个导致问题的BOM。有没有办法,我可以从我的C ++程序中删除.txt文件中的BOM,以便fin可以读取它而没有任何问题?我知道我可以自己手动删除文件中的BOM,但我有多个我正在使用的文件,所以这需要一段时间。

我的问题类似于这个问题,除了这个问题在Java中:

How to make Notepad to save text in UTF-8 without BOM?

korifey的回答是我要找的,他们说:

使用PushbackInputStream(in,3)

我可以用C ++做类似的事情吗?还应该注意的是,我只有记事本(不是Notepad ++),最好在不下载任何新软件的情况下解决我的问题。我也不想改变记事本本身对BOM的看法,我只是想从我的.txt文件中物理删除BOM。我正在处理的BOM是前8个字符。

c++ file file-io io byte-order-mark
1个回答
0
投票

通过以二进制模式打开文件,读取所有数据并将除BOM之外的所有内容复制到另一个文件,然后删除旧文件,最后将新文件重命名为旧文件名称,这将是最简单的方法。

© www.soinside.com 2019 - 2024. All rights reserved.