首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Invalid byte 二 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-b

2012-08-29 
Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-b在做接口解析时候出

Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-b
在做接口解析时候出现的错误:Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence.

很明显是在读取XML文件时候出现的编码问题!
在测试过程中发现,主要原因是xml文件中声明的编码与xml文件本身保存时的编码不一致。

现在解决的办法就有几个,主要说我测试过的两个方。
如果你是直接以文件的形式读取 可以更改XML文件中的 UTF-8编码 改为 GBK或GB2312 .
还有一种可能是 你直接以URL 通过网络地址获取InputStream流形式读取 在转换成Document对象。这种方法的解决办法是先down 下来保存在本地。实现比较简单 用个OutputStream流写到你想保存的目录即可。再解析down下来的文件 其中在 SAXReader saxReader = new SAXReader();
之后Document document=sax.read(new File(file));之前 处理XML文件编码格式即可调用下面的处理方法。
方法:

SAXReader saxReader = new SAXReader();//下面转格式代码[color=red]byte[] bytes = InputStreamToByte(new FileInputStream(file));InputStream in = new ByteArrayInputStream(bytes);InputStreamReader strInStream = new InputStreamReader(in,"GBK");[/color]Document root = saxReader.read(strInStream);Element element = root.getRootElement();System.out.println(element.getName());



这样就可以正常输出了。
最重要的是 【转换流编码类型方法】比网上的一些解决办法来得简单多了!

热点排行