我维护了一个作为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
到我的连接字符串的末尾,结果相同
所以有一件事我没有回答我原来的问题。
我用Spring Security设置了系统,并在过滤器链中设置了一个CharacterEncodingFilter
,在所有请求和响应中强制使用UTF-8,但我在我的web安全初始值设定项的afterSpringSecurityChain
部分设置了它。
我将过滤器移动到之前的SpringSecurityChain
方法和繁荣-一切UTF-8与所有数据库供应商完美合作。
我最终没有向我的连接字符串添加任何参数或任何东西。实际上,我只是换了个过滤器。
您可能需要在连接字符串中指定您正在使用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如下所示