当前位置: 首页 > 知识库问答 >
问题:

Hibernate JPA jTDSSQL服务器=Unicode问题

荣德厚
2023-03-14

我维护了一个作为Servlet运行的软件,可以使用MySQL、Oracle或SQL服务器作为数据库后端——这取决于客户想要使用什么。

MySQL和Oracle的一切都很好,SQLServer也很好,只是我不能在数据库中插入/更新Unicode序列。

我可以在SQLServerManagementStudio中手动插入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

正如我所说,Oracle和MySQL使用这种设置可以完美地工作。SQL Server有什么不同之处?

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

如果有区别的话,我将使用JPA存储库进行DB交互。整个webapp也被设置为SpringMVC应用程序。

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

共有2个答案

衡修洁
2023-03-14

所以有一件事我没有回答我原来的问题。

我用Spring Security设置了系统,并在过滤器链中设置了一个CharacterEncodingFilter,在所有请求和响应中强制使用UTF-8,但我在我的web安全初始值设定项的afterSpringSecurityChain部分设置了它。

我将过滤器移动到之前的SpringSecurityChain方法和繁荣-一切UTF-8与所有数据库供应商完美合作。

我最终没有向我的连接字符串添加任何参数或任何东西。实际上,我只是换了个过滤器。

蒲昊
2023-03-14

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

jdbc:jtds:sqlserver://<server_ip>:1433;databaseName=MyDb;useUnicode=true;characterEncoding=UTF-8
 类似资料:
  • 谢谢你的忠告!

  • 我已经安装了selenium IDE和selenium server(selenium RC)。。。当使用phpunit在命令提示符下运行测试用例时,会出现如下错误 访问位于“”的Selenium服务器时,响应无效http://localhost:4444/selenium-服务器/驱动程序/':30000ms后超时 我在selenium IDE选项超时属性中进行了更改,并且在启动服务器时 jav

  • 我安装了XAMPPLinux1.8。2并尝试启动服务器(/opt/lampp/lampp start),其响应如下 我无法打开localhost、xampp、phpmyadmin等。 我已经在opt目录中有了旧版本的xampp,我已经将其重命名为lampp bk,新版本类似于lampp。 提前谢谢。

  • 我有一个本地eureka服务器和一个客户端 RetryableEurekaHttpClient:请求执行失败DiscoveryClient:DiscoveryClient_MW/192.168.0.100:Client:8080-无法发送心跳! com.netflix.discovery.shared.transport.transportException:无法在任何已知服务器上执行请求 在《原

  • 我使用的是Nifi 0.4.1版本。我写自定义代码转换CSV到avro格式。我已经创建了类文件(.java文件),并能够生成nar文件。将新创建的nar文件放置在lib目录中,并重新启动nifi服务器。 类文件没有任何错误或警告。 当检查nifi的状态(status-nifi.bat)时,它表示服务器可能已经崩溃或挂机。 任何帮助都很感激..

  • 我正在通过启用Java EE的Eclipse运行tomcat,每当我试图启动服务器时,就会出现以下错误,我无法运行任何servlet, 我的web.xml如下所示