Java 解析XML中的无效字符
我正在尝试从数据库中读取数据,并将这些数据分配给DataObject。 但是DB中的一列有一个无效的字符(请参见图像中突出显示的文本区域),无法在XML UTF-8中进行解析,请任何人帮助我解决这个问题。 提前谢谢 目前,我正在使用以下代码删除无效字符Java 解析XML中的无效字符,java,xml,xml-parsing,Java,Xml,Xml Parsing,我正在尝试从数据库中读取数据,并将这些数据分配给DataObject。 但是DB中的一列有一个无效的字符(请参见图像中突出显示的文本区域),无法在XML UTF-8中进行解析,请任何人帮助我解决这个问题。 提前谢谢 目前,我正在使用以下代码删除无效字符 try { out = new StringBuffer(); // Used to hold the output. char current; // Used to reference the current
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();
试试看{
out=new StringBuffer();//用于保存输出。
char current;//用于引用当前字符。
if(in==null | |(“”.equals(in)))返回“”;//空缺测试。
对于(int i=0;i 如果((当前==0x9)| |(当前==0xA)| |(当前==0xD)| |((当前>=0x20)&&&&&(当前=0xE000)&&&&(当前=0x10000)&&(当前最终我找到了问题的解决方案
最可能的情况是,您希望同时剥离不可打印字符和控制字符。为此,您可以使用以下regexp:“[^\x20-\x7E]”或简单地说:“[^-~]”
有关此主题的更多信息,您也可以参考。最后,我找到了问题的解决方案
最可能的情况是,您希望同时剥离不可打印字符和控制字符。为此,您可以使用以下regexp:“[^\x20-\x7E]”或简单地说:“[^-~]”
有关此主题的更多信息,您也可以参考。请详细说明什么是解决方案。不清楚您所说的是无效的,以及如何无效。字段是否应该包含UTF-8编码的文本,并且它包含的字节序列是无效的UTF-8?或者,您只是想在XML d中放置一个字符序列文档,它恰好包含XML禁止的字符?请详细说明什么是解决方案。不清楚您所说的是无效的,以及如何无效。字段是否应该包含UTF-8编码的文本,并且它包含的字节序列是无效的UTF-8?或者,您只是想在XML文档中放入一个字符序列而且它恰好包含XML禁止的字符?