无法从我的 XML 中读取 ZÖE、DÉCOR CIARÁN 等字符?

Unable to read characters like ZÖE,DÉCOR CIARÁN etc from my XML?

我有一个大XML。在我的 XML 中有一些像 ZÖE,DÉCOR CIARÁN 这样的角色。我正在使用 JavaMarkLogic 作为我的数据库。我无法用这些词阅读我的 XML,当我删除这些词并检查它是否正常工作时。

我的Java代码:

    DatabaseClient client = DatabaseClientFactory.newClient(IP, PORT,
        DATABASE_NAME, USERNAME, PWD, Authentication.DIGEST);

    XMLDocumentManager docMgr = client.newXMLDocumentManager();
    DOMHandle xmlhandle = new DOMHandle();
    docMgr.read("/" + filename, xmlhandle);

更改的问题: 正如我所说,我无法阅读特殊字符,现在我该如何插入特殊字符,以便在阅读时获得相同的格式。

示例: 当我插入像 CIARÁN AURÉLIE BARGÈME 这样的字符时,它正在保存但是当我阅读时,数据是这样的 CIARAN AURÉLIE BARGEME 但不是插入的。

 DatabaseClient client = DatabaseClientFactory.newClient(IP, PORT,
        DATABASE_NAME, USERNAME, PWD, Authentication.DIGEST);

    XMLDocumentManager docMgr = client.newXMLDocumentManager();
    DOMHandle xmlhandle = new DOMHandle();
    docMgr.read("/" + filename, xmlhandle);
    String doc = xmlhandle.ToString();
    String data = Normalizer.normalize(doc, Normalizer.Form.NFD)
                    .replaceAll("[^\p{ASCII}]", "");

我正在使用 Normalizer 来读取特殊字符,否则普通的 xmlhandle 就可以了。

根据他们的官方文档:

如果您指定了编码,但结果证明是错误的编码,那么转换结果可能不会如您所愿。

MarkLogic Server 将文本 XML 和 JSON 存储为 UTF-8。在Java中,内存和读取流中的字符都是UTF-16。 Java API 自动将字符与 UTF-8 相互转换。

向服务器写入文档时,您需要知道它们是否已采用UTF-8 编码。如果文档不是 UTF-8,您必须指定其编码,否则您很可能会因为编码不正确而导致数据包含不正确的字符。如果您指定非 UTF-8 编码,Java API 将在写入 MarkLogic 时自动将编码转换为 UTF-8。

https://docs.marklogic.com/guide/java/document-operations#id_11208