feff 0xef, 0xbb, 0xbf UTF-8

 

问题来源:

inux下处理windows utf8文件,发现vim头会多一个<feff>,从而导致正常的文件解析出错。

一般默认创建的文件都是ANSI编码的。用记事本打开这个文件,点"另存为",最下面有个"编码(Encoding)"可以选择,里面有"ANSI,utf8"等选项。

 

问题知识:

所谓 BOM,全称是Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序 (Big/Little Endian),除此以外还可以标识编码(UTF-8/16/32),如果出现在文本中间,则解释为zero width no-break space

  <feff>被称作BOM(Byte Order Mark)的不可见字符,是Unicode用来标识内部编码的排列方式的,

  在UTF-16、UTF-32编码里它是必需的,而在UTF-8>里是可选的。

问题解决:删除BOM

1.删除方法Vi

#设置UTF-8编码
:set fileencoding=utf-8
#添加BOM
:set bomb
#删除BOM
:set nobomb
#查询BOM
:set bomb?
2.检测 BOMB
grep -I -r -l $'\xEF\xBB\xBF' /path
grep -I -r -l $'\xEF\xBB\xBF'  file | xargs sed  -i  's/\xEF\xBB\xBF//'

转载于:https://www.cnblogs.com/lily-tiantian/p/5420450.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值