这个字符是什么编码?以及如何在xml中处理它

What encoding is this character? And how to handle it in xml

提问人:Invariant 提问时间:11/2/2022 更新时间:11/3/2022 访问量:56

问:

<tac id="10" name="KD&#11;#36">

我有一个保存在xml(使用Java)的程序。但是保存此行后,xml 无法再加载 (SAX 解析器)。 我是否需要将 xml 标头更改为 UTF-8 以外的其他内容,如果是,更改为什么?

XML UTF-8 字符编码

评论


答:

0赞 Invariant 11/3/2022 #1

好吧,我想通了。

它的“KD”加上 ASCII 控制字符 VTAB 加上“#36”。

显然,Java 无法正确地将该字符写入 xml,因此在写入 xml 之前,我只是使用正则表达式将其替换为其他东西。

评论

1赞 Joachim Sauer 11/3/2022
正如@nwellnhof所指出的,U+000B 在 XML 1.1 中是合法的。同时,它极不可能故意出现在文本中,因此删除它可能是理智的(除非您需要完美地复制一些输入)。
2赞 nwellnhof 11/3/2022 #2

数字字符引用在 XML 1.0 中是非法的,但在 XML 1.1 中是允许的。Java 的 SAX 解析器应该能够解析 XML 1.1,但这需要文档顶部的 XML 声明指定版本 1.1:&#11;

<?xml version="1.1"?>