首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除文件中的BOM表字符

删除文件中的BOM表字符
EN

Stack Overflow用户
提问于 2015-10-07 15:41:43
回答 3查看 43.2K关注 0票数 31

我的html文件中有一个BOM字符。我想把它去掉。我已经搜索了很多,使用了很多脚本等等。。但是没有人工作。我也下载了notepad++,但在它的编码菜单中没有编码"UTF8 without BOM“。如何删除物料清单字符?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-07 15:50:20

如果你看一下同样的菜单。单击“转换为UTF-8”。

票数 39
EN

Stack Overflow用户

发布于 2017-06-22 08:58:56

你可以使用vim来解决这个问题,你可以很容易的使用MinGW-w64 (如果你已经安装了Git )或者Cygwin。

所以,关键是要使用:

  • 选项-s,它将执行一个带有vim命令的vim脚本。
  • 选项-b,它将以二进制模式打开你的文件,在那里你会看到那些笨拙的字节
    • 选项-n,这是非常重要的!此选项拒绝使用交换文件,因此您的所有工作都在内存中运行。它为您提供了保证,因为如果文件很大,交换文件可能会误导进程。

也就是说,让我们来看看代码!

脚本首先创建一个简单的文件,这里命名为‘

  1. ’,它将包含vim命令

echo 'gg"+gPggdtCZZ‘>脚本

...this奇怪的字符串告诉vim“转到文件的开头,复制第一个单词并将其粘贴到光标后面,因此删除所有内容,直到字符'C',然后,保存文件”

注意:如果您的文件以'C‘以外的其他字符开头,则必须指定它。如果您有不同的“第一个字符”,您可以按照逻辑创建一个bash脚本,该脚本将读取第一个字符,并在上面的代码片段中为您替换它。

  • 运行vim命令:

vim -n -b -s script

票数 5
EN

Stack Overflow用户

发布于 2020-07-06 07:49:49

我相信这不会被视为一个问题。当它为时,一个有问题的只有3个字节的EF BB BF。我们就不能删掉这个吗?或者更改为某项内容,然后再次关闭文件?

无论如何,下面这个东西可以做这个把戏,并将BOM更改为‘*’。运行方式

代码语言:javascript
复制
x file 

其中,file是文件的名称。

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS     
#include <stdio.h>
#include <string.h>

int main(int argc, char** argv)
{
    const unsigned char BOM[3] = { '\xEF', '\xBB', '\xBF' };
    char file_name[64] = { "target.csv" };
    if (argc > 1) strcpy(file_name, argv[1]);
    FILE* one = fopen(file_name, "r+b");
    if (!one) return -1;
    unsigned char buffer[64];
    int n = fread(buffer, 1, 3, one);
    if (n != 3)return -2;
    if (memcmp(buffer, BOM, 3) != 0)
    {   printf("file '%s' has no BOM\n", file_name);
        fclose(one);
        return 0;
    };
    n = fseek(one, 0, SEEK_SET);
    if (n != 0) return -3;
    buffer[0] = buffer[1] = buffer[2] = '*';
    n = fwrite(buffer, 1, 3, one);
    if (n == 3)
        printf("Byte Order Mark changed to '***'\n");
    else
        printf("Error writing to file\n");
    fclose(one);
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32986445

复制
相关文章

相似问题

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