解析XML中的无效字符

时间:2016-07-23 05:09:46

标签: java xml xml-parsing

尝试从DB读取数据并将这些数据分配给DataObject。 但是DB中的一列有一个无效的字符(请参见图像http://i.stack.imgur.com/6bpx4.png中突出显示的文本区域),但无法在XML UTF-8中进行解析,任何人都可以帮我解决它。 提前致谢

目前我正在使用以下代码删除无效字符

    try {

        out = new StringBuffer(); // Used to hold the output.
    char current; // Used to reference the current character.
    if (in == null || ("".equals(in))) return ""; // vacancy test.
    for (int i = 0; i < in.length(); i++) {
        current = in.charAt(i); // NOTE: No IndexOutOfBoundsException caught here; it should not happen.
        if ((current == 0x9) ||  (current == 0xA) || (current == 0xD) || ((current >= 0x20) && (current <= 0xD7FF)) ||
            ((current >= 0xE000) && (current <= 0xFFFD)) || ((current >= 0x10000) && (current <= 0x10FFFF)))
        {  
            out.append(current);
        }


    }

    return out.toString();

1 个答案:

答案 0 :(得分:0)

最后我解决了我的问题..

您很可能想要删除不可打印和控制字符。为此,您将使用以下正则表达式:“[^ \ x20- \ x7E]”或简单地说:“[^ - 〜]”

您还可以参考Replace non ASCII character from string了解有关此主题的更多信息。