我正在使用公理从XML提取数据。但是由于XML中包含CTRL-CHAR(例如â,€,¢,“,”,™,’,–等),所以我遇到了以上错误。任何机构都可以帮助我更换所有CTRL-SHAR以避免以上错误。

最佳答案

目前,在这种情况下,我正在使用以下方法。但是我认为必须有比这更好的方法。

public static String removeNonUtf8CompliantCharacters( final String inString ) {
        if (null == inString ) return null;
        byte[] byteArr = inString.getBytes();
        for ( int i=0; i < byteArr.length; i++ ) {
            byte ch= byteArr[i];
            // remove any characters outside the valid UTF-8 range as well as all control characters
            if ( !(ch < 0x00FD && ch > 0x001F) || ch =='&' || ch=='#') {
                byteArr[i]=' ';
            }
        }
        return new String( byteArr );
    }

07-24 09:17