这个问题与如何在文件第一行前插入文本?密切相关。我故意将标题设为与该问题相似以突出这一点。
除非目标文件是带有BOM的UTF-8。
因此,我想在文件的第一行中添加一个标题(0xef 0xbb 0xbf
字符)中包含 UTF-8 BOM 字节的文件。至少我这里的 UTF-8 带 BOM 文件以此开头。
如果我继续按照相关问题中的解决方案进行操作,
sed "1i My First line is now this." file.txt
我将得到类似这样的结果(在我的情况下是 VSCode)
My First line is now this.
?The first line was this one
Second line and so on
第二行的 UTF-8 字符用来?
表达一些不可打印的内容。
正如我们所料,另一个结果是文件不再以带 BOM 的 UTF-8 格式打开,我们现在依靠文本编辑器功能来“猜测”其编码。我们在项目中确定了一种模式,即使用带 BOM 的文件来确保所有内容都采用相同的编码。
如何在添加文本时保留文件中的 BOM 头?