众所周知,XML的快速发展,已经越来越多地出现在数据交互、文件配置和格式化的数据载体中,尽管XML支持的语言越来越多,但是还是有些字符是不被支持的。我在工作中就遇到了这样的问题,通过.csv文件录入数据,然后通过在程序中转化为XML中间文件,再将XML文件录入进行处理时发生异常,经过分析,是由于.csv文件中含有XML不支持的非法字符。
查询XML规范(http://www.w3.org/TR/2004/REC-xml-20040204),得知:XML支持的字符范围:
Character Range
[2]
Char
::=
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
/* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
从字符串中检测XML不支持的字符的Java代码: