java编译时error: illegal character '\ufeff' 的解决办法 - 程序员秘密
文章推薦指數: 80 %
java编译时error: illegal character '\ufeff' 的解决办法_t518vs20s的博客-程序员秘密. 技术标签: java. 原文链接:https://blog.csdn.net/shixing_11/article/ ...
java编译时error:illegalcharacter'\ufeff'的解决办法_t518vs20s的博客-程序员秘密
技术标签: java
原文链接:https://blog.csdn.net/shixing_11/article/details/6976900
最近开发人员通过SVN提交了xxx.java文件,因发布时该包有问题需要回退,故SCM将该xxx.java文件用editplus打开删除了新添的一行,删除后重新编译打包,却报了如下异常:
java:[1,0]illegalcharacter:\65279
表面看着该文件确实没错,看不出来问题,后来从SVN上更新下代码以后,发现本地也不报错,后来通过Eclipse查看了该xxx.java类的属性,才发现玄机所在:
编译有问题的文件属性:(注意最下面一行ByteOrderMarkisUTF-8 (BOM))
编译正常的文件属性:
看来问题出在 ByteOrderMarkisUTF-8 (BOM)上。
因为看不出来问题,所以用UltraEdit打开两个文件,并用16进制格式显示:
有问题的文件头:
无问题的文件头:
看来有问题的文件头前面多了三个字节EFBBBF。
具体原因如下:
某些编辑器会往utf8文件中添加utf8标记(editplus称其为签名),它会在文件开始的地方插入三个不可见的字符(0xEF0xBB0xBF,即BOM),它的表示的是Unicode标记(BOM)。
因此要解决这个问题的关键就是把这个标记选项去掉,可按如下方法操作。
首先用editplus打开这个文件,从Doucument菜单中选择PermanetSettings,有三个分类,分别是General,File,Tools.点击File,右边会有一项是UTF-8signature:选择alwaysremovesignature.点击OK。
中文版本的Editplus下操作的菜单结构如下:文档->参数设置->文件->UTF-8签名->总是移除签名->确定,这样就设置了UTF-8格式不需要在文件前面加标记,最后把文件另存为utf-8格式就好了.
相关资料,网上摘抄:
UTF-8以字节为编码单元,没有字节序的问题。
UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序。
例如收到一个“奎”的Unicode编码是594E,“乙”的Unicode编码是4E59。
如果我们收到UTF-16字节流“594E”,那么这是“奎”还是“乙”?Unicode规范中推荐的标记字节顺序的方法是BOM。
BOM不是“BillOfMaterial”的BOM表,而是ByteOrderMark。
BOM是一个有点小聪明的想法:在UCS编码中有一个叫做"ZEROWIDTHNO-BREAKSPACE"的字符,它的编码FEFF。
而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。
UCS规范建议我们在传输字节流前,先传输字符"ZEROWIDTHNO-BREAKSPACE"。
这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。
因此字符"ZEROWIDTHNO-BREAKSPACE"又被称作BOM。
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。
字符"ZEROWIDTHNO-BREAKSPACE"的UTF-8编码是EFBBBF(读者可以用我们前面介绍的编码方法验证一下)。
所以如果接收者收到以EFBBBF开头的字节流,就知道这是UTF-8编码了。
Windows就是使用BOM来标记文本文件的编码方式的。
原来BOM是在文件的开始加了几个字节作为标记。
扩展阅读:
UTF-8,UTF-16,UTF-32&BOM:http://www.unicode.org/faq/utf_bom.html#BOM
W3C官方说明:http://www.w3.org/International/questions/qa-utf8-bom
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/t518vs20s/article/details/80833061
原作者删帖
不实内容删帖
广告或垃圾文章投诉
智能推荐
Yearsagoinhighschool,IwalkedintotheWWDCconferencelobbyinMosconeWestjustoutofcuriosity.IspentalotofmyfreetimeindowntownSanFrancisco,andthoughtI’dmightaswellcheckit...
仿真结果如下:核心代码如下:%------延时求和波束形成-------closeall;clearall;clc;%%%%%%基阵的有关参数c=1500;%m/sL=1.3;%基阵长N=32%基元个数d=L/(N-1);%阵元间距a=9;%参考基元的在基阵中的位置xi=[1:1:N]*d;f=40000;%信号频率bl=c/...
对于现代设计师而言,Sketch已经成了不可或缺的设计工具之一。
各家原型设计工具也在悄悄的发生一些改变,迎合设计师们的需求,纷纷开发出了针对sketch原型的插件。
既有传统的桌面端原型工具,也有基于云平台的工具。
虽然没有任何一条标准规定你必须使用哪一个工具,然而如何能在众多的sketch+原型工具的组合中找到最适合自己的工作流程,提高工作效率,也是一件耗时的工作。
所以最近摹客的小伙伴们精心的为大家...
一、简介(背景)1.1、概念它是一个将数据渲染为HTML视图的js库1.2、原生js痛点用dom的API去操作dom,繁琐且效率低用js直接操作dom,浏览器会进行大量的回流和重绘原生jjs没有组件化的编程方案,代码复用性低,哪怕有模块话的概念,但模块化也只能拆解一个个js,对样式和结构也没办法拆解,组件化就相当于3剑客整体拆解,成为一个个的小功能1.3、React特点采用组件化模式,声明式编码,提高开发效率和组件复用性在ReactNative中可以用react预发进行安卓、io
编译Linux内核时出现“fatalerror:linux/netfilter/xt_dscp:Nosuchfileordirectory”。
下面开始查找原因。
第一步:找到编译器报错的.h和.c文件,发现linux-3.8.1/include/uapi/linux/netfilter下有2个类似的文件: "xt_DSCP.h"和"xt_DSCP.
1.linux默认自带vi,一般使用升级版vim2.第一次使用需要安装vimsudoaptinstallvim如果没有安装的话会提示安装vim执行安装sudoaptinstallvim测试vima.txt出现下面界面则安装成功3.vim的三种模式1.普通模式当vim打开的时候就直接进入普通模式,在...
随便推点
编者按:本文来自微信公众号“APPSO”(ID:appsolution),作者李晨,36氪经授权发布。
iPhone首销日和往年一样,依然有大量的消费者在各地不同的AppleStore排起长龙,店里人头攒动,店员们都在忙着为这些首批顾客设置他们全新的iPhone12。
全新的机器也有老味道,在将旧型号数据导入新手机时你会发现,无论是全盘备份还是无线传输,速度依旧不快,AppleStor...
地址:http://blog.csdn.net/complex_ok/article/category/871440
问题:"C:\ProgramFiles\VideoLAN\VLC\vlc.exe"-IdummyD:\wamp\www\videos\361\000\000.ts--sout=#standard{access=file,mux=mp4,dst=C:\1.mp4,caching=2000}vlc://quit可以在1.1.9上运行,在0.9.9上也可以。
但是在RedhatEL5.5上就不行,...
使用GdPicture.NET可以在将图像扫描之后导出为PDF格式,并可进行编辑。
比如导出的PDF图像拥有很多页,那么可以快速的在PDF文件中添加图片,并可实现定位添加,可以在任一PDF页面添加图片。
》》》GdPicture.NET最新试用版下载地址示例代码如下:DimoGdPicturePDFAsNewGdPicturePDFDimoGdPictureI
gnuas汇编器也支持宏定义,在汇编代码中可以使用.macro和.endm汇编指令定义汇编宏。
基本用法:.macromacname/*汇编代码*/....endm其中,macname是宏定义的名称。
1)、带参宏定义.macromacnamemacargs...参数之间用逗号或着空格进行分隔。
2)、参数设置默认值.macromacnamearg1=10arg2=203)、参数引用使用\arg1,\arg2,....
TimeandDuration(时间和持续时间)ROS中也有内置的时间和持续的原始类型在rospy中由rospy.Time和rospy.Duration实现主要参数有:int32secs//秒int32nsecs//纳秒获取当前时间的命令rospy.Time.now()rospy.get_rostime()//这两个是获取当前时间seconds=...
推荐文章
Ubuntu14.04.3安装 gitlab-ce_7.10.4(web服务)_TianYP2100的博客-程序员秘密
DIP原则、IoC以及DI_weixin_34174105的博客-程序员秘密
c语言如何引入第三方库,在Rust中,如何从第三方库定义或导入C结构体?_优创品牌营销的博客-程序员秘密
CentOS7安装CDH(十一):离线升级CDH版本_电光闪烁的博客-程序员秘密
sgg-react编程31-37_nzch的博客-程序员秘密
WindowManager与窗口管理机制_hjj0212的博客-程序员秘密
符合doxygen规范的文档注释_DawnRayYang的博客-程序员秘密
干货|机器学习算法工程师必须掌握的七大技能_算法学习者的博客-程序员秘密
热门文章
新买的笔记本计算机内存不足,笔记本电脑内存不足怎么办解决方法【图文教程】..._weixin_39658619的博客-程序员秘密
观看米老师疫情后复工视频的感受_熊猫队长-的博客-程序员秘密
豆瓣读书搜索页的window.__DATA__的解密_sergiojune的博客-程序员秘密___data__
aspx微型_如何使用微型可编程机器人向孩子介绍编码_cumian8165的博客-程序员秘密
linux下面MongoDB的安装配置详情-用户权限设置_dark_horse_lk的博客-程序员秘密
iwlist工具的移植_kx453653102的博客-程序员秘密
套接字缓存之skb_put、skb_push、skb_pull、skb_reserve_zhiweiaixiaosang的博客-程序员秘密_skb_put
使用外网ssh远程登录Ubuntu的设置方法(路由器端口映射)_Meteor丶的博客-程序员秘密_使用ssh登录ubuntu
相关标签
java
延伸文章資訊
- 1Error: (1, 1) java: Illegal character:'\ufeff' [How to Solve]
When opening the eclipse java project compiling with IDEA, the following error occurred: Error:(1...
- 2anruy - 博客园
转-java编译时error: illegal character '\ufeff' 的解决 ... 查看了该xxx.java类的属性,才发现玄机所在: 编译有问题的文件属性:(注意最下面 ...
- 3error: illegal character: '\ufeff' in java - Stack Overflow
As Jim Garrison pointed out, you probably have a Byte Order Marker (BOM) at the start of the file...
- 4java编译时error: illegal character '\ufeff' 的解决办法 - CSDN
原文链接:https://blog.csdn.net/shixing_11/article/details/6976900最近开发人员通过SVN提交了xxx.java文件,因发布时该包有问题需要...
- 5Error:(1, 1) java: 非法字元: '/ufeff' - 程式人生