`
ivan
  • 浏览: 179506 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java中对有BOM头的UTF-8文件的处理

    博客分类:
  • java
阅读更多

在用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte Order Mark)。JDK1.5之前的Reader都不能处理BOM,解析这种格式的xml文件时,会抛出异常:Content is not allowed in prolog. 据说JDK1.6已经解决了这个bug。(参考http://www.uuzone.com/blog/mao/98921.htm
在未使用JDK1.6之前,解决办法有三:
1、不要使用有BOM头的xml文件,就是说不要用记事本保存utf-8的xml文件,editplus就很好用;
2、使用这位仁兄的unicodereader,可以正确处理有BOM的xml文件:
http://koti.mbnet.fi/akini/java/unicodereader/
3、如果是用Xerces解析器,直接传Stream给Xerces,而不是传Reader,Xerces就可以正确的处理了。总之不要用Reader就好了。

分享到:
评论

相关推荐

    Java解决UTF-8的BOM问题

    Java解决UTF-8的BOM问题,使用“UnicodeInputStream”、“UnicodeReader”。

    解决IDEA不支持带BOM的UTF-8编码文件,使支持

    2. 如果你是其他版本的IDEA,那么用压缩工具处理你的DEA安装目录下lib文件夹中的ecj-x.x.x.jar文件(名字根据IDEA版本会有所不同),将Util.class替换该jar包目录中\org\eclipse\jdt\internal\compiler\util路径下的...

    IDEA支持带BOM的UTF-8编码文件的解决方案

    2. 如果你是其他版本的IDEA,那么用压缩工具处理你的DEA安装目录下lib文件夹中的ecj-x.x.x.jar文件(名字根据IDEA版本会有所不同), 将Util.class替换该jar包目录中\org\eclipse\jdt\internal\compiler\util路径下的...

    java 读取服务器上的某个文件,并解决UTF-8 BOM文件的问号问题

    NULL 博文链接:https://baobeituping.iteye.com/blog/1280825

    CodeDetector:检测文件编码,现在支持UTF-8,GBK,UTF-16LE,UTF-16BE,Java

    目前支持 UTF-8(BOM或无BOM)、GBK、UTF-16LE、UTF-16BE单个文件或文件夹,支持编码批量转换。使用方法:1、直接使用,下载jar包,直接使用。下载jar/CodeDetector-1.0.jar检测编码:java -jar CodeDetector-1.0.jar ...

    解决IDEA不支持带BOM的UTF-8编码文件,使支持-清风明月兮

    2. 如果你是其他版本的IDEA,那么用压缩工具处理你的DEA安装目录下lib文件夹中的ecj-x.x.x.jar文件(名字根据IDEA版本会有所不同),将Util.class替换该jar包目录中\org\eclipse\jdt\internal\compiler\util路径下的...

    java获取文件编码(判断有无BOM)

    利用chardet,cpdetector包获取文件格式,并判断文件类型是否带BOM

    java去除文件头bom信息

    去除文件中的BOM头信息. 一些文档工具可以打开再保存为无bom格式,但文件太多就很费力,此工具类可以直接运行,直接输入你要修改的文件夹路径即可,可自由调整文件夹深度,进行子级文件夹读取

    BomSweeper:从 UTF-8 文件中删除 BOM(字节顺序标记)

    从 UTF-8 文件中删除 BOM(字节顺序标记)。 写这个是因为我有一些带有 BOM 的 UTF-8 格式的 Android 项目的遗留源代码,但找不到任何软件可以在 MAC OS 上执行批处理 BOM 删除操作。 ##用法 bs.py [-h] [--type...

    Transcoding_setup_v0.7.1 文件编码转换

    总是遇到文件编码不一致的情况,自己抽...支持gb2312、gbk(ansi)、gb18030、utf-8、utf-8bom、utf-16le、utf-16be 自动识别文本文件后缀名、原始编码格式,根据用户设定的目标编码智能转换 其他详细说明见软件内说明。

    文件编码批量转换工具(不用积分)

    第二个参数表示要转换成的编码 如utf-8,utf-8-bom,ansi 等编码都支持 第二个参数表示要转换的文件类型,以扩展名的形式提供支持,可以提供多个文件扩展名 以空格分隔 如:我要转换E盘下 E:\work_architecture\doc...

    Ini for Java

    ps:INI文件一般是Windows平台在使用,而Windows系统中的“记事本”程序比较坑:如果文本文件是UTF-8编码,在用记事本打开并保存后,会变成“UTF-8 Bom”格式。而 Windows中读写INI的相关API又不支持“UTF-8 Bom”...

    cleanbom:从adt迁移到android studio有可能出现:编译Java产生 illegal character

    cleanbom编译Java产生 illegal character: \65279 错误的问题是由于Windows系统开发的编码为UTF-8(BOM)导致,BOM是Byte-Order Mark的意思。一种为了让编辑器自动识别编码。在文件前3个字节加上了EE,BB,BF,但标准的...

    Editplus 3[1].0

    【18】支持带UTF-8标记/不带UTF-8标记的文件 每个步骤都说得很详细了,就没有必要贴图了,体积不要太大才好。 【1】正则表达式应用——替换指定内容到行尾 原始文本如下面两行 abc aaaaa 123 abc 444 希望每次...

    sphinx中文语音训练手册

    在编辑后,使用 文件-转换-ASCII转UTF-8(UNICODE编辑),指定文件中的中文使用utf8编码。 在保存前,设置格式如下: 换行符:UNIX终束符 - LF 指定文件中的回车/换行符为编码0A的换行符 格式:UTF-8 - ...

    EditPlus 2整理信箱的工具

    【18】支持带UTF-8标记/不带UTF-8标记的文件 每个步骤都说得很详细了,就没有必要贴图了,体积不要太大才好。 【1】正则表达式应用——替换指定内容到行尾 原始文本如下面两行 abc aaaaa 123 abc 444 希望每次...

    xmljava系统源码-AndroidFAQSolutions:Android开发各类常见错误解决方案(不断更新中)

    xml java系统源码 AndroidFAQSolutions(Android开发各类常见错误解决方案) 本文属于个人平时项目开发过程遇到的一些问题,记录下来并总结...Eclipse可以智能的把UTF-8+BOM文件普通的UTF-8文件,Android Studio还没

    sonar-jproperties-plugin:SonarQube Java属性分析器

    可用规则应该处理“ FIXME”标签应该处理“ TODO”标签所有评论的格式应一致所有属性和注释应从第1列开始字节顺序标记(BOM)不应用于UTF-8文件凭证不应该硬编码具有相同值的不同键应合并跨文件的重复密钥应被删除...

    超级批量文本替换 4.0

    超级批量文本替换 4.0 2007-01-22更新:增加对文件和文件夹的拖拽操作 2007-01-19更新:增加对无BOM的UTF8格式文件的支持 <br>完全绿色软件,可以对熊猫烧香造成的挂马网页实行恶意代码清除 (利用本软件的...

Global site tag (gtag.js) - Google Analytics