Java 无法分析JAXB中的额外符号

Java 无法分析JAXB中的额外符号,java,spring,jaxb,jaxb2,Java,Spring,Jaxb,Jaxb2,使用java中的JAXB编组和解编组,我无法解析图像中“This end use consumption”文本前面出现的符号 获取以下错误 Generic Exception being handled : Fatal error: PCDATA invalid Char value 20 at :11. 我想跳过这类符号,如何使用JAXB实现这一点 请帮助。您的源XML可能不是有效的XML。XML是否可以通过连接文本而不必在必要时转义特殊字符来创建?无效字符是\x14,DC4,一个控制字符

使用java中的JAXB编组和解编组,我无法解析图像中“This end use consumption”文本前面出现的符号

获取以下错误

Generic Exception being handled : Fatal error: PCDATA invalid Char value 20 at :11. 
我想跳过这类符号,如何使用JAXB实现这一点


请帮助。

您的源XML可能不是有效的XML。XML是否可以通过连接文本而不必在必要时转义特殊字符来创建?

无效字符是\x14,DC4,一个控制字符。(我想知道,这是如何输入的,或者SW实体添加了什么。)

根据XML W3C建议,这是字符的有效范围:

#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
这意味着必须删除(而不是转义!)所有其他控制字符。这可以通过使用简单的正则表达式过滤用户数据来实现,例如

String input = ...;
saneInput = input.replaceAll( "[\\x00-x1F&&[^\\x08\\x0A\\x0D]]+", "" );

你们能粘贴那个有问题的字符吗?是的,它就在那个里,你们可以在“最终用途”文本之前的图片中找到它。是的,但我对文本并没有任何控制,用户可以输入任何文本。所以我需要逃跑it@AshwiniSukale-是的,您需要转义用户输入的文本以使其对XML友好。当前如何将该文本转换为XML?可以对完整的用户输入字符串进行Base64编码。