1

我需要将特定语言的字符保存在 xml 数据类型的列中,因为 XML 是我在检索它时想要的格式。就在坚持之前,我在 XML 中看到了俄语字符,但是在我坚持使用 JPA 之后实际存储的内容类似于“??????”。需要注意的是,要求是将列数据类型保持为 xml。我尝试了我在网上能找到的任何东西,但没有成功。如果有人可以请帮助我。

我有一个函数,它将包含语言字符的地图作为其参数之一。该函数将地图转换为 XML 格式并以字符串形式返回。然后将其持久化到数据库中,如下所示:

entityManager.persist(X)

,其中 X 是一个实体对象,其 XML 字符串映射到它的属性之一。

private String toXML(Map<String, String> map, String root) {
    StringBuilder xmlSB = new StringBuilder(OPEN_NODE);
    // Logic to convert map to XML
    return xmlSB.toString();
}

在 entityManager.persist(X) 之后,我在数据库表中看到的条目类似于“????” 在我的情况下替换所有俄语字符,其余一切保持不变。

4

1 回答 1

-1

将列排序规则修改为UTF-8并在您的 jdbc url 中添加字符串characterEncoding=UTF-8 。这个逻辑曾经用于mysql。

但是要在mssql中存储特殊字符,需要将列的数据类型改为nvarchar()而不是varchar()。

于 2013-06-13T10:42:05.583 回答