java write 去bom_java流处理遇到bom的问题

一.简介

BOM(Byte Order Mark)---字节顺序标记。

类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。Windows 就是使用 BOM 来标记文本文件的编码方式的。

在用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte Order Mark)

二.遇到的问题

在用java读取一个json文件时,由于对方用的UTF-8 (有BOM)编码,读取的内容的最前端会有几个默认的字符。

三.解决

使用工具类

以UnicodeReader为例:

FileInputStream fis = new FileInputStream(file);

UnicodeReader ur = new UnicodeReader(fis, "utf-8");

BufferedReader br = new BufferedReader(ur);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值