表情符号字符序列��打破了旧的xml过程 [英] Emoji character sequence �� breaks old XML process

查看:0
本文介绍了表情符号字符序列��打破了旧的xml过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个旧的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)
是否有快速、本地化的修复程序可以应用,而不必重新设计和重新设计整个应用程序?此外,我更希望避免正则表达式搜索/替换黑客攻击,因为这可能会引入其他微妙的问题。

推荐答案

��是编码为代理项对(两个代理项)的单个字符。XML中的字符引用不能表示(高或低)代理项:这些不是合法字符。字符引用应表示Emoji的Unicode码点作为一个整体,👇

第三方向您发送的是无效的XML,您应该拒绝它,就像拒绝供应商提供的任何其他有问题的商品一样。

这篇关于表情符号字符序列��打破了旧的xml过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆