我需要将语言特定字符保存在 xml 数据类型列中,因为 XML 是我检索它时希望它采用的格式。就在坚持之前,我在 XML 中看到了俄语字符,但在我坚持使用 JPA 后实际存储的内容类似于“??????”。需要注意的是,要求将列数据类型保留为 xml。我尝试了网上能找到的一切,但没有成功。如果有人可以帮助我解决这个问题。
我有一个函数,它将包含语言字符的映射作为其参数之一。该函数将 map 转换为 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),我在数据库表中看到的条目类似于“????”替换我的例子中的所有俄语字符,其余一切保持不变。
最佳答案
将列排序规则修改为 UTF-8 并在 jdbc URL 处添加字符串 characterEncoding=UTF-8。这个逻辑曾经我用于mysql。
但是要在mssql中存储特殊字符,您需要将列的数据类型更改为nvarchar()而不是varchar()。
关于java - 无法将语言特定字符保留到 xml 数据类型的数据库列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084157/