У меня есть старое Java-приложение, которое обрабатывает XML из стороннего источника данных.
Фид данных позволяет вводить данные пользователем, и теперь он внезапно содержит смайлики, такие как ��
(?). Я на самом деле удивлен, что эта проблема появилась так долго (смайлики существуют уже несколько лет).
Приложение взрывается в javax.xml.parsers.DocumentBuilder.parse(InputStream)
:
org.xml.sax.SAXParseException; lineNumber: 105; columnNumber: 3039; Character reference "&#
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:348)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
Существует ли быстрое локализованное исправление, которое я могу применить, не перепроектируя и не перестраивая архитектуру всего приложения? Кроме того, мы бы предпочли избегать взлома поиска / замены регулярных выражений, поскольку это может привести к другим тонким проблемам.