提问人:Invariant 提问时间:11/2/2022 更新时间:11/3/2022 访问量:56
这个字符是什么编码?以及如何在xml中处理它
What encoding is this character? And how to handle it in xml
问:
<tac id="10" name="KD#36">
我有一个保存在xml(使用Java)的程序。但是保存此行后,xml 无法再加载 (SAX 解析器)。 我是否需要将 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:
<?xml version="1.1"?>
评论