【发布时间】:2021-09-28 19:55:34
【问题描述】:
我一直在尝试将 Spring Boot 应用程序连接到本地 SQL Server,但由于服务器名称包含重音字符(即 É),连接协议似乎不允许这样做。
我已尝试指定 useUnicode 和 characterEncoding 属性,但到目前为止没有任何效果。
这是application.properties 文件:
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
#connection using Windows Authentication
spring.datasource.url=jdbc:sqlserver://FLÉK\\MSSQLSERVER02;databasename=MyDatabase;integratedSecurity=true;useUnicode=true;characterEncoding=UTF-8
spring.datasource.username=usname
spring.datasource.password=somepassword
还有错误信息:
com.microsoft.sqlserver.jdbc.SQLServerException: The connection to the host FL�K, named instance mssqlserver02 failed. Error: "java.net.UnknownHostException: FL�K". Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434. For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host.
我无法更改服务器名称,因为这需要重新安装服务器本身。任何想法我应该在什么级别寻找解决方案,或者我应该在哪里启用 unicode 的这种用法?
【问题讨论】:
-
以编程方式更改 spring.datasource.url 值。用 Java 构建它,然后存储它。
-
如果服务器有一个固定的IP地址,你可以使用它
-
你试过在文件中使用
\u00C9吗?您可能将.properties文件保存为 UTF-8。虽然它被加载为 ISO-8859-1(自 Java 1.0 以来一直是.properties的默认值)。 -
谢谢大家,上面提到的所有属性我都试过了。 @ChrisMaggiulli 不幸的是,这些都不起作用,但是 @MarkRotteveel 你的方法确实有效,我不知道
.properties使用 ISO-8859-1 编码进行阅读。请将此作为答案,以便我投票并接受它。 -
很高兴解决了
标签: java sql-server jdbc