java - Hibernate + JPA + jTDS + SQL Server = Unicode 问题

标签 java sql hibernate unicode

我维护一个作为 Servlet 运行的软件,可以使用 MySQL、Oracle 或 SQL Server 作为数据库后端 - 取决于客户想要使用的内容。

一切都与 MySQLOracle 完美配合,SQL Server 也运行得很好,除了我无法在数据库中插入/更新 Unicode 序列 .

我可以在 SQL Server Management Studio 中手动插入这样的 unicode 序列

INSERT INTO mytable (msg) VALUES (N'Modern Standard Hindi (मानक हिन्दी), is a standardised and Sanskritised register of the Hindustani language.')

此数据在我的软件中正确输出,因此这验证了数据库和 Web 前端都可以毫无问题地处理 unicode。

这是我的连接字符串

jdbc:jtds:sqlserver://<server ip>:1433/MyDb

正如我所说,OracleMySQL 使用此设置可以完美工作。 SQL Server 有什么不同?

注意:我还尝试了微软官方提供的 JDBC 驱动程序,结果完全相同。

如果有什么不同,我正在使用 JPA Repositories进行我的数据库交互。整个 Web 应用程序也设置为 SpringMVC 应用程序。

编辑:我还尝试将 useUnicode=true;characterEncoding=UTF-8 添加到连接字符串的末尾,结果相同

最佳答案

您可能需要在连接字符串中指定您正在使用 Unicode,以及您正在使用的编码。也许是这样的?

jdbc:jtds:sqlserver://<server_ip>:1433;databaseName=MyDb;useUnicode=true;characterEncoding=UTF-8

关于java - Hibernate + JPA + jTDS + SQL Server = Unicode 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25736036/

相关文章:

Scala 中匿名类的 Java 风格 Lambda 表达式

java - HashMap 会通过字符串类型提供对对象数组的有效访问吗?

c# - EF 核心 : Invalid column name 'companyId1'

sql - 查询仅从字符串中获取数字

java - (我不知道如何比较字符串)用 while 循环写入文件

java - 如何使用透视投影矩阵?

php - 表行重复 - 逻辑可能已关闭

java - 使用 IN 子句更新 JPQL 中的用户实体字段

java - Hibernate 和 JSON - 循环依赖有明确的解决方案吗?

java - 数据处理平衡