Linux下文件开头的feff的问题 - CSDN博客
文章推薦指數: 80 %
但是发现每个文件第一行都会有“
google了下发现问题的所在了。
原来这是个被称作BOM(Byte Order Mark)的不可见字符,是Unicode用来 ...
Linux下文件开头的feff的问题
生活不只*眼前的苟且
于 2018-01-1209:50:50 发布
15574
收藏
6
分类专栏:
Linux
Linux
专栏收录该内容
28篇文章
0订阅
订阅专栏
由于linux下vi无法直接写入中文注释,所以只能在windows下将写好注释的代码传到linux服务器上,但是问题也就出现了,我在windows下用的是Notepad++这款编辑器(感觉还挺不错,有语法高亮识别)编辑源代码的,加过注释后上传到linux上无论什么语言环境(LANG)都是乱码,然后看了一下Notepad++的设置,发现默认为ANSI格式,于是就转换为UTF-8格式编码(因为linux里有这个格式的嘛),然后再上传到linux服务器上,linux也设为UTF-8语言环境,可以看到中文注释了!但是发现每个文件第一行都会有“
google了下发现问题的所在了。
原来这是个被称作BOM(ByteOrderMark)的不可见字符,是Unicode用来标识内部编码的排列方式的,在UTF-16、UTF-32编码里它是必需的,而在UTF-8里是可选的。
因此,才会出现有的编辑器在文件头部添加添加BOM、而有的语法解析器又不作处理的的混乱情况。
所谓BOM,全称是ByteOrderMark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/LittleEndian),除此以外还可以标识编码(UTF-8/16/32),如果出现在文本中间,则解释为zerowidthno-breakspace。
这个BOM可以在编辑文本时设置的,但是,只能在第一次编辑时才能设置它为bomb还是nobomb,编辑完并保存后就无法再更改编码格式了。
有关bomb命令:
#设置UTF-8编码:setfileencoding=utf-8#添加BOM:setbomb#删除BOM:setnobomb#查询BOM:setbomb?
如下例子:
用vi编辑一个测试文本test.txt
[plain]
viewplain
copy
test bomb or nobomb ~ ~ ~ ~ ~ ~ ~ ~ ~
查询BOM结果:(setbomb?)
[plain]
viewplain
copy
~ ~ ~ ~ ~ nobomb
更改BOM结果:(setbomb)
[plain]
viewplain
copy
~ ~ ~ ~ ~ ~ bomb
保存后再次打开就会发现如下图所示:
而且我们对于上传过来的源代码没法做修改,网上有人说可以删除BOM(grep-I-r-l$'\xEF\xBB\xBF'*|xargssed-i's/^\xEF\xBB\xBF//;'),我试过了不行,不知哪位大牛指点下?检查文件中是否含BOM的命令为:
[plain]
viewplain
copy
grep -I -r -l $'\xEF\xBB\xBF' *
这个命令是有效的。
既然没法靠在linux下有什么命令删除BOM,那咱们只能从源头处理了,编码更改为无BOM的UTF-8编码格式。
Notepad++有转换此格式的选项:
转换过后保存下然后再传到linux服务器上,问题就解决了!!
另:这个问题在sun环境和Hp环境下没有此问题,我不清楚如果忽略这个问题在编译时或程序运行时是否会产生异常,网上有人反映是有的,所以还是建议麻烦些也不要忽略此问题,谁晓得它会惹出什么麻烦呢
生活不只*眼前的苟且
关注
关注
2
点赞
踩
6
收藏
0
评论
Linux下文件开头的feff的问题
由于linux下vi无法直接写入中文注释,所以只能在windows下将写好注释的代码传到linux服务器上,但是问题也就出现了,我在windows下用的是Notepad++这款编辑器(感觉还挺不错,有语法高亮识别)编辑源代码的,加过注释后上传到linux上无论什么语言环境(LANG)都是乱码,然后看了一下Notepad++的设置,发现默认为ANSI格式,于是就转换为UTF-8格式编码(因为linu
复制链接
扫一扫
专栏目录
去除文件中
之后通过网络抓包的方式,查看到接口返回数据前多了EFBBBF。
出现了如此令人不知所以然的bug总是极度让人抓狂。
经过了几番尝试之后,仍然不能得以解决,但也隐隐感觉得可能是字符编码的问题,遂用PHPStorm新建了一个文件,然后重新将之前出bug的文件
参与评论
您还未登录,请先
登录
后发表或查看评论
Linux文件中开始处的feff,行末的^M
小马过河
04-15
920
Windows中的换行符为^M,若直接把Windows中的文件复制到Linux中,则在Linux中的文件开始处有一个“feff”,代表着文件的开始,包含三个字节(0xef,0xbb,0xbf),每一行的末尾会有一个“\^M“,在Linux中\^M的转义字符为\r,所以去除^M科一使用python中的strip(),比如:
forlineinf.readlines():
i...
php去掉feff,PHP中遇到BOM、
昨天同事遇到一个奇怪的问题,就是以下代码,无法通过JSON校验,也无法通过PHP的json_decode函数解析,代码如下:[{"title":"","pinyin":""}]可能聪明的你已经猜到其中包含有不看见的特...
【30】UTF-8、BOM、
这个字符可以通过vim查看到,而且如果是一个php文件,php4、php5在解析时均会有输出。
这个被称作BOM(ByteOrderMark)的不可见字符,是Unicode用来标识内部编码的排列方式的,在UTF-16、UTF-32编码里它是必需的,而在UTF-8里是可选的。
因此,才会出现...
linux下feff的问题
热门推荐
当你专心做一件事时全世界都会给你让路!!
04-01
1万+
由于linux下vi无法直接写入中文注释,所以只能在windows下将写好注释的代码传到linux服务器上,但是问题也就出现了,我在windows下用的是Notepad++这款编辑器(感觉还挺不错,有语法高亮识别)编辑源代码的,加过注释后上传到linux上无论什么语言环境(LANG)都是乱码,然后看了一下Notepad++的设置,发现默认为ANSI格式,于是就转换为UTF-8格式编码(因为linu
开始只是删除它没太注意是怎么回事,这次又遇到了这个问题,查了一下,总结了一下问题。
分享一下。
UTF-8编码中BOM的检测与删除
先解释一个名词BOM,所谓BOM,全称是ByteOrderMark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/LittleEndian),除此以外还可以标识编码(UTF-8
UTF-8、BOM、
于是,两三天完成一个需求迭代,兴致勃勃的上线测试服务器,感觉以这样的速度开发的话,年底就可以月入百万,迎接白富美,走上......等等,jsp布局错乱什么鬼?部分功能崩溃什么鬼?于是有了今天的排错之旅。
由于在开发环境是正常的,部署到服务器后,功能部门不可用,把相关文件和svn对比,并没有用得出有效结果,于是锁定编码的问题,linux下...
php
假如我们在正常方法中把==误写成=,那么if($result=false)就会恒定返回true,导致在实际运行中产生未知的Bug,如果使用异常...
【Linux】<feff>问题
丨晋丨
03-24
179
在windows下保存文件编码为UTF-8会在文件头加上BOM,所以在读文件时会出现报错。
在linux下用vim打开会看到
小谈linux下文件头部<feff>问题
JSH的博客
11-27
117
https://blog.csdn.net/weixin_34293059/article/details/91430820?utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase
unicode、utf-8、ansi的故事
congqing7975的博客
04-19
144
我在网上看到的一篇很详细的讲这三种编码的文章。
讲解的非常清楚,转过来给大家看看吧。
作者的blog是http://haoxiaobo.spaces.msn.com快下班时,爱问问题的小朋友Nico又问了一个问题:"sqlser...
php
对于UTF-8/16/32而言,它们名字中的8/16/32指的是编码单位是多少位的,也就是说,它们的编码单位分别...
linux下vi显示bom,linux下vi中[noeol]以及出现feff的问题
最新发布
weixin_32183107的博客
05-13
267
"uptime.py"[noeol]69L,2311C"system/uptime.py"69L,2312C‘noeol‘就是‘noend-of-line‘,即“没有行末结束符”使用cat-A命令可以看到两个文件的不同之处在于最后一行是否有换行符cat-Auptime.pyif__name__==‘__main__‘:$uptime=uptime()$print...
用VIM设置UTF-8编码的BOM标记
公众号:张小飞那些事儿
10-27
3410
1.查看是否有BOM
:setbomb?
2.添加BOM
:setbomb
3.去掉BOM
:setnobomb
删除linux
首先是查找含有这个字符的文本:
grep-I-r-l$'\xEF\xBB\xBF'yourfilepath
只删除这个字符:
grep-I-r-l$'\xEF\xBB\xBF'yourfilepath|xargssed-i's/\xEF\xBB\xBF//g'
删除含有字符的哪一行:
grep-I-r-l$'\xEF\xBB\...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
生活不只*眼前的苟且
CSDN认证博客专家
CSDN认证企业博客
码龄9年
暂无认证
174
原创
1万+
周排名
104万+
总排名
236万+
访问
等级
1万+
积分
395
粉丝
1204
获赞
280
评论
1993
收藏
私信
关注
热门文章
针对Failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.1的解决方案
274139
正则表达式匹配任意字符
168846
crontab定时任务不执行的原因
123960
java.lang.ExceptionInInitializerError解决办法
87679
@Scheduled不执行的原因
81896
分类专栏
Java
78篇
Python
38篇
Spring
16篇
Linux
28篇
Hadoop
9篇
Nosql
12篇
前端
5篇
Mysql
6篇
数据结构与算法
4篇
机器学习
66篇
最新评论
mysql获取分组后每组的最大值
weixin_43758142:
这方法对于数据量60w+的表执行一次要2-4秒之间,有啥优化方案吗
针对Failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.1的解决方案
ftft2252:
感谢大佬,终于成了
针对Failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.1的解决方案
听君一席话,省我十本书:
我调完后报进程终止
Encoder-Decoder模型和Attention模型
谢同鞋:
后面几张图片看不见了
MySQL使用全文索引(fulltextindex)
SiaoLeio:
张欣婷是前女友么
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
KMP算法、AC自动机算法的原理介绍以及Python实现
python项目“内存泄漏”的调试过程
服务超时实战分析
2019年5篇
2018年83篇
2017年93篇
2016年99篇
2015年1篇
目录
目录
分类专栏
Java
78篇
Python
38篇
Spring
16篇
Linux
28篇
Hadoop
9篇
Nosql
12篇
前端
5篇
Mysql
6篇
数据结构与算法
4篇
机器学习
66篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1去除文件中<feff> - 腾讯云开发者社区
最近生成的文件中出现了<feff>乱码,而且单个文件中出现不止一次,在vim中打该文件显示<feff>,而在idea中则显示一个“-”,对数据处理造成了极大的 ...
- 2Linux下文件开头的feff的问题 - CSDN博客
但是发现每个文件第一行都会有“<feff>”这个字符串。google了下发现问题的所在了。 原来这是个被称作BOM(Byte Order Mark)的不可见字符,是Unicode用来 ...
- 3The FEFF Project
The FEFF Project at the University of Washington specializes in theoretical methods for spectrosc...
- 4Zero Width No-Break Space: U+FEFF
Symbol: , Name of the character: zero width no-break space, Unicode number for the sign: U+FEFF,...
- 5A quick tale about FEFF, an invisible UTF-8 character that ...
Our friend FEFF means different things, but it's basically a signal for a program on how to read ...