java utf-8带bom格式内容(带"\uFEFF")转换成utf-8格式
文章推薦指數: 80 %
后台导出的txt文件格式为带bom的utf-8。
需要判断第一个字符是否是'\uFEFF'. if(inputTaskItem.substring ...
javautf-8带bom格式内容(带"\uFEFF")转换成utf-8格式
HiWorldNice
于 2019-11-2016:12:55 发布
3824
收藏
6
分类专栏:
Android
java
文章标签:
java
utf-8带bom
\uFEFF
utf-8无bom
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/pbm863521/article/details/103164385
版权
Android
同时被2个专栏收录
94篇文章
0订阅
订阅专栏
java
11篇文章
0订阅
订阅专栏
从txt文件中读取一串字符串和数据库中另一串字符串比较的时候发现两串字符串一样,但是判断是否equal的时候发现返回的是false,也就是不相等。
这就奇怪了,于是打印log,发现了端倪:
左边的字符串是数据库的,右边的字符串是从txt文档读取的,发现右边的字符串前有个小点。
把整个内容复制粘贴出来,发现那个小点又不见了:
E/id===:55cdf761d9c74874b381d24a64cb2766,55cdf761d9c74874b381d24a64cb2766
单独复制那个小点,用百度搜索,发现什么也搜不到,空白,只会跳转到百度首页。
这就很奇怪了。
把那个小点复制粘贴到编辑器上,还是什么也没。
添加双引号“”再粘贴进去,就出现内容了:
"\uFEFF"
发现这个是文档编码格式的问题。
文档是utf-8带bom格式,这个是不标准的。
标准的格式是utf-8无bom格式。
什么是BOM?BOM(byte-ordermark),即字节顺序标记,它是插入到以UTF-8、UTF16或UTF-32编码Unicode文件开头的特殊标记,用来识别Unicode文件的编码类型。
对于UTF-8来说,BOM并不是必须的,因为BOM是用来标记多字节编码文件的编码类型和字节顺序(big-endian或little-endian)。
而UTF-8中,每个字符的编码有多少位是通过第一个字节来表述的,而且没有big-endian和little-endian的区分。
UTF-8不需要BOM,尽管Unicode标准允许在UTF-8中使用BOM。
所以不含BOM的UTF-8才是标准形式,在UTF-8文件中放置BOM主要是微软的习惯(顺便提一下:把带有BOM的小端序UTF-16称作「Unicode」而又不详细说明,这也是微软的习惯)。
BOM是为UTF-16和UTF-32准备的,用于标记字节序(byteorder)。
微软在UTF-8中使用BOM是因为这样可以把UTF-8和ASCII等编码明确区分开,否则用Excel打开CSV文件有可能是乱码的。
但这样的文件在Windows之外的操作系统里会带来问题。
「UTF-8」和「带BOM的UTF-8」的区别就是有没有BOM。
即文件开头有没有U+FEFF。
UTF-8的网页代码不应使用BOM,否则常常会出错。
当从http的response输出CSV文件的时候,设置为utf8的时候默认是不带bom的,但是windows的Excel是使用bom来确认utf8编码的,所有需要把bom写到文件的开头。
由此可见如果txt文件格式是utf-8带bom是不标准的,这样获取的字符串可能有问题。
那怎么处理呢?如果是utf-8带bom格式,那就把第一个字符去掉,从第二个字符开始截取。
如果是utf-8无bom格式,那么就从第一个字符开始截取。
代码如下:
Stringid;
//获取txt文件内容的id。
后台导出的txt文件格式为带bom的utf-8。
需要判断第一个字符是否是'\uFEFF'
if(inputTaskItem.substring(0,1).contains("\uFEFF")){//是utf-8带bom格式
//把第一位去掉,从第二位开始截取。
inputTaskItem为txt文件内容字符串
id=inputTaskItem.substring(1);
}else{//是utf-8无bom格式
//正常获取
id=inputTaskItem;
}
经测试,问题解决。
HiWorldNice
关注
关注
5
点赞
踩
6
收藏
打赏
0
评论
javautf-8带bom格式内容(带"\uFEFF")转换成utf-8格式
从txt文件中读取一串字符串和数据库中另一串字符串比较的时候发现两串字符串一样,但是判断是否equal的时候发现返回的是false,也就是不相等。
这就奇怪了,于是打印log,发现了端倪:左边的字符串是数据库的,右边的字符串是从txt文档读取的,发现右边的字符串前有个小点。
把整个内容复制粘贴出来,发现那个小点又不见了:E/id===:55cdf761d9c74874b381d24...
复制链接
扫一扫
专栏目录
Java批量将utf-8有bom格式的java文件转成utf-8无bom格式工具
嘻哈嘻哈
07-03
4896
Java批量将utf-8有bom格式的java文件转成utf-8无bom格式工具
importjava.io.*;
importjava.util.ArrayList;
importjava.util.List;
/**
*utf-8有bom批量转为utf-8无bom文件格式
*/
publicclassUTF8BOMConverterextendsReade...
Java解决UTF-8的BOM问题
03-18
Java解决UTF-8的BOM问题
参与评论
您还未登录,请先
登录
后发表或查看评论
java写utf-8有bom_Java读带有BOM的UTF-8文件乱码
weixin_36269733的博客
02-13
248
通过java写的UTF-8文件,使用Java可以正确的读,但是如果用记事本将相同的内容使用UTF-8格式保存,则在使用程序读取是会从文件中多读出一个不可见字符,多一个?实例:新建一个文本:内容为“测试BOM”的txt文本,另存为UTF-8.处理带BOM的类UnicodeReaderpackagecom.java.io;importjava.io.IOException;importjava....
utf-8有bom批量转为utf-8无bom文件格式
qq_37749055的博客
04-08
755
packagetest;
importjava.io.*;
importjava.util.ArrayList;
importjava.util.List;
/**
*utf-8有bom批量转为utf-8无bom文件格式
*/
publicclassUTF8BOMConverterextendsReader{
privatestaticfinali...
javautf8bom_Java读带有BOM的UTF-8文件乱码原因及解决方法
weixin_42415451的博客
02-12
345
转自:http://daimojingdeyu.iteye.com/blog/397661最近在处理文件时发现了同样类型的文件使用的编码可能是不同的。
所以想将文件的格式统一一下(因为UTF-8的通用性,决定往UTF-8统一),遇见的第一个问题是:如何查看现有文件的编码方式。
上网找了一下,找到几篇比较好文章,这里就不转载啦把链接搞过来。
文件编码问题集锦字符串编码(charset,encoding,d...
如何批量将带有BOM的UTF-8转换为UTF-8
最新发布
尘絮缘——BLOG
07-28
510
但是,这样去BOM头的方法只适合于对单个文件的操作,当我们面临大批量的文本文档都需要去BOM头的时候,我们就不得不去寻求一种更加高效、更加便捷、更加省心省力的方式来帮我们实现批量将带有BOM的UTF-8转换为UTF-8了,那怎么样才能够做到一次将所有的带有BOM的UTF-8文本文件转为UTF-8呢?BOM对于UTF-8来说是可以不需要的,并且在有些时候带BOM的UTF-8在一些软件中使用的时候会出现未知的问题,所以我们需要去掉UTF-8的BOM头。
...
关于utf-8BOM转utf-8
GS的博客
07-03
665
关于utf-8BOM转utf-8
在跑paddleOCR时遇到了一个问题,在使用gen_label.py的过程中,出现了报错:
在读取一个label文件时出现“\ufeff”读取错误
原因是“\ufeff”是utf-8BOM格式的,需要更改为utf-8格式
现贴下代码:
importos
importsys
importcodecs
deflistdir(path,list_name):#传入存储的list
forfileinos.listdir(path):
java输出utf8_JAVA输出带BOM的UTF-8编码的文件
weixin_30259017的博客
02-13
217
当从http的response输出CSV文件的时候,设置为utf8的时候默认是不带bom的,可是windows的Excel是使用bom来确认utf8编码的,全部须要把bom写到文件的开头。
微软在UTF-8中使用BOM是由于这样能够把UTF-8和ASCII等编码明白区分开。
否则用Excel打开CSV文件有可能是乱码的演示样例代码例如以下:response.setContentTyp...
java转文件编码bom_JAVA输出带BOM的UTF-8编码的文件
weixin_34883242的博客
02-26
257
当从http的response输出CSV文件的时候,设置为utf8的时候默认是不带bom的,可是windows的Excel是使用bom来确认utf8编码的,全部须要把bom写到文件的开头。
微软在UTF-8中使用BOM是由于这样能够把UTF-8和ASCII等编码明白区分开。
否则用Excel打开CSV文件有可能是乱码的演示样例代码例如以下:response.setContentTyp...
UTF-8(withBOM)与UTF-8相互转换
淮城一只猫
04-23
4454
Eclipse采用UTF-8BOM格式编码,而Linux下采用UTF-8无BOM格式。
BOM用来标记编码的字节顺序,但是由于编码字节顺序对于UTF-8来说无关紧要,而且Unicode标准也并不推荐使用带BOM的UTF-8编码格式。
总之,由于Windows和Linux的不同,为避免使用Notepad++手动更改大量文件的繁琐,提供shell转换脚本如下:
UTF-8(withBOM)转UTF-8...
javautf8无bom格式_java读取/生成utf-8格式文件和utf-8无BOM文件的方法
weixin_35779845的博客
02-13
1373
首先说下UTF-8格式和UTF-8无BOM格式的区别。
两者的区别就是UTF-8格式的文件,在第一行的开始位置,会有个标志位,一般工具是无法看到的,占3个字节。
而UTF-8无BOM格式的文件,顾名思义,就是没有这个标志位。
先说下从UTF-8文件转换成UTF-8无BOM格式文件相信很多朋友都有过这样的经历,读取UTF-8格式的文件的时候,中文会变成乱码,明明在java代码里指定了读取文件使用的流编码格...
Java读取带有BOM的UTF-8文件乱码问题
Eplusing
07-22
783
在java中,class文件的编码方式与编译时javac选择的参数有关(-encoding<编码>指定源文件使用的字符编码),Java的字符串是永远都是unicode的。
问题背景:
比较文本文件(UTF-8编码)中一个首行固定值strA与java中定义的常量strB是否相同,因为strA在首行且在改行的开头,在比较中始终无法相同,在改变文编码格式为GBk后则可以工作,确认与文件编...
读取文本出现锘*系列乱码错误(UTF-8BOM问题)的原因及解决方法
热门推荐
mighty13的专栏
09-24
2万+
现象读取文本时经常会出现锘*系列错误。
例1:锘縣,其实开头的文本是h,http被显示为锘縣ttp
例2:锘缝,其实开头的文本是p,public被显示为锘缝ulic
只要文本的首字母为锘的都属于这类错误,在Python、Java、PHP等等使用过程中都会遇到,这类错误与语言无关,错误的原因是UTF-8的BOM。
原因BOM即ByteOrderMark,是UTF-8文档的Unicode签名,即
java输出utf8_java输出编码为utf-8的文件的方法
weixin_32047493的博客
02-13
1112
/***输出文件,编码为UTF-8用记事本另存为:fileContent全部为英文则为ansi包含中文则为UTF-8*@paramfilePathAndName*@paramfileContent*/publicstaticvoidwriteFile(StringfilePathAndName,StringfileContent){try{FileOutputStrea...
非法字符:“\ufeff”解决办法
lufeia的博客
11-11
537
报错原因:
编码风格不一致
解决方案:
1、编码改为GBK格式,再转为UTF-8格式,重新启动项目问题解决
注意:更改右下角的编码就行
补充:本人简单就解决了,详细参考大佬文档
https://blog.csdn.net/qiqibei666/article/details/99224355
...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:编程工作室
设计师:CSDN官方博客
返回首页
HiWorldNice
CSDN认证博客专家
CSDN认证企业博客
码龄13年
暂无认证
78
原创
5万+
周排名
129万+
总排名
58万+
访问
等级
4878
积分
48
粉丝
109
获赞
87
评论
237
收藏
私信
关注
热门文章
android.database.sqlite.SQLiteConstraintException:UNIQUEconstraintfailed异常解决
55993
android怎么获取APP的唯一标识applicationId
37192
java.lang.NoSuchMethodError:NostaticmethodencodeBase64String([B)Ljava/lang/String问题解决
26339
Fatalsignal11(SIGSEGV),code1,faultaddr0xc91303b0intid3587(RenderThread)
23353
A/libc:Fatalsignal6(SIGABRT),code-6intid9269
20609
分类专栏
python
2篇
Android
94篇
java
11篇
Android,FLAG_ACTIVITY_FORWARD_RESULT
1篇
最新评论
Java算法当前值是前两个值之和
saber呆毛王:
//算法:012358132134当前数等于前面两数之和
privatestaticvoid当前数是前两之和(){
long前=0L,中=1L,后=1L;
System.out.print(0+"");
System.out.print(1+"");
System.out.print(1+"");
for(inti=3;i<100;i++){
前=中;
中=后;
后=前+中;
System.out.println(后+"");
}
}
android.view.WindowLeaked:ActivityhasleakedwindowDecorView@9a11182[]thatwasoriginallyaddedh
weixin_45700208:
赞
java.lang.UnsatisfiedLinkError:Noimplementationfoundfor
沅霖:
把.so库放在.so库接口对应的包名里?是什么意思啊
AndroidBLE设置MTU大小
cuishuyuan:
楼主,请问Android端为什么最大可设置512byte呢?蓝牙协议4.2和5.0的ATTMTU都是244呀
AndroidBLE设置MTU大小
普通网友:
这学期也在自学Android,看了您的博文感觉很不错,可以加您VX交流吗感谢博主
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
AndroidGlide加载网络图片不显示,但浏览器能打开图片
AndroidBLE设置MTU大小
ModuleNotFoundError:Nomodulenamed‘pip‘
2022年1篇
2021年5篇
2019年15篇
2018年14篇
2017年68篇
2016年5篇
2015年1篇
目录
目录
分类专栏
python
2篇
Android
94篇
java
11篇
Android,FLAG_ACTIVITY_FORWARD_RESULT
1篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
HiWorldNice
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:--)
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1IDE非法字符'\ufeff'报错| UTF8与UTF8-BOM,大端与小端等 ...
BOM. 出于好奇,我们查一下这个编码 \\ufeff 是个什么东东,查询得知,这是一个标识字节存储顺序的编码。 这个涉及到一个名词:BOM。
- 2java utf-8帶bom格式內容(帶"\uFEFF")轉換成utf-8格式- 台部落
java utf-8帶bom格式內容(帶"\uFEFF")轉換成utf-8格式. 原創 HiWorldNice 2020-06-20 04:48. 從txt文件中讀取一串字符串和數據庫中另一串字...
- 3Python \ufeff - SYmm 微筆記
在Windows下用文本編輯器創建的文本文件,如果選擇以UTF-8等Unicode格式保存,會在文件頭(第一個字符)加入一個BOM標識。具體去除方法看看下面代碼.
- 4java讀取文字檔案異常 - 程式人生
百度搜了一下這個uFEFF 原因如下在Windows下用文字編輯器建立的文字檔案,如果選擇以UTF-8等Unicode格式儲存,會在檔案頭(第一個字元)加入一個BOM ...
- 5ufeff的解决方法_51CTO博客
\ufeff的解决方法. 用"utf-8"编码方式读取带有BOM的文件时,它会把BOM当做是文件内容来处理, 也就会发生错误. 解决方法.