xml encoding和实际编码不同导致xml解析异常

阅读更多
发现一个xml encoding和实际编码不同导致xml解析异常。

对于

使用了utf-8 getBytes后得到一个byte[],然后使用xml解析。
由于xml解析器会自动识别xml中的GBK,然后使用GBK解码,导致xml解析失败。



utf-8
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D2247424B22203F3E3C61 3E E5B8 82 3C  2F61 3E
gbk                                        
甯?/a>
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D2247424B22203F3E3C61 3E E5B8 3F     2F61 3E

可以看到,由于编码问题,市的utf-8编码E5B882和<的utf-8编码3C被GBK解码时,
解析为E5B8, 3F(不能识别,默认?),导致
中的<被提前解析到text中,导致后续xml解析找不到<,解析失败。

16进制码值 打印字符
2F61 /a
61 a
3C <
3E >
3F ?


你可能感兴趣的:(xml encoding和实际编码不同导致xml解析异常)