我正在使用公理从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 );
}