if (c <= 0xD7FF) {
if (c >= 0x20) return true;
else {
if (c == ' ') return true;
if (c == ' ') return true;
if (c == ' ') return true;
return false;
}
}
if (c < 0xE000) return false; if (c <= 0xFFFD) return true;
if (c < 0x10000) return false; if (c <= 0x10FFFF) return true;
return false;
}
==================================
public class q {
private static boolean isXMLCharacter(int c) {
if (c <= 0xD7FF) {
if (c >= 0x20) return true;
else {
if (c == ' ') return true;
if (c == ' ') return true;
if (c == ' ') return true;
return false;
}
}
if (c < 0xE000) return false; if (c <= 0xFFFD) return true;
if (c < 0x10000) return false; if (c <= 0x10FFFF) return true;
return false;
}
public static void checkCharacterData(String text) throws Exception {
if (text == null) {
throw new Exception(
"A null is not a legal XML value"
);
}
// do check
char[] data = text.toCharArray();
for (int i = 0, len = data.length; i < len; i++) {
char c = data[i];
int result = c;
// high surrogate
if (result >= 0xD800 && result <= 0xDBFF) {
// Decode surrogate pair
int high = c;
try {
int low = text.charAt(i+1);
if (low < 0xDC00 || low > 0xDFFF) {
throw new Exception(
"Bad surrogate pair"
);
}
// Algorithm defined in Unicode spec
result = (high-0xD800)*0x400 + (low-0xDC00) + 0x10000;
i++;
}
catch (IndexOutOfBoundsException e) {
throw new Exception(
"Bad surrogate pair"
);
}
}
if (!isXMLCharacter(result)) {
// Likely this character can't be easily displayed
// because it's a control so we use its hexadecimal
// representation in the reason.
throw new Exception("0x"
+ Integer.toHexString(result)
+ " is not a legal XML character");
}
}
// If we got here, everything is OK
return;
}
public static void main(String[] args) {
boolean flag=false ;
String s2="asd。 <br/>¥";
for(int i=0;i<s2.replaceAll(" ", "").length();i++){
int j=s2.replaceAll(" ", "").charAt(i);
flag=isXMLCharacter(j);
if(!flag)System.out.println("sd"+(char)j+"sd");
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)