如何使用 JDBC 驱动程序连接到带有重音名称的 SQL Server?

洛伊斯2B

我一直在尝试将 Spring Boot 应用程序连接到我的本地 SQL Server,但由于服务器名称包含重音字符(即É),连接协议似乎不允许这样做。

我曾尝试指定useUnicodecharacterEncoding属性,但到目前为止没有任何效果。

这是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的这种用法?

马克·罗特维尔

Java.properties文件 - 默认情况下 - 预计采用 ISO-8859-1 字符集,但看起来您保存为 UTF-8。Properties.load(InputStream)

从输入字节流中读取属性列表(键和元素对)。输入流采用简单的面向行的格式,如 中所述,load(Reader)并假定使用 ISO 8859-1 字符编码;即每个字节是一个 Latin1 字符。不在 Latin1 中的字符和某些特殊字符使用The Java™ Language Specification 的第 3.3 节中定义的 Unicode 转义符在键和元素中表示

通常在 Java 中有两个选项:

  1. 明确保存在 ISO-8859-1 中。这是一种非常脆弱的方法,因为它只需要编辑器自动“修复”事物并保存为 UTF-8 即可重新引入问题
  2. 对 ASCII 范围之外的字符使用 Unicode 转义,在本例中为\u00c9

特别是对于 Spring,您有第三种选择

  1. 切换到使用 YAML 配置文件,默认情况下为 UTF-8。

对于一般的 Java,但不适用于 Spring 应用程序属性,您还可以选择使用 加载属性文件Properties.load(Reader),其中读取器已使用文件的正确字符集构建。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使用JDBC驱动程序SQLState 08001连接到MS SQL Server

无法使用JDBC连接到SQL Server

使用watir Web驱动程序连接到SQL Server

SQL Server 2014的JDBC驱动程序

无法通过JDBC连接到SQL Server。找不到适用于jdbc:sqlserver://的驱动程序

JDBC,连接到SQL Server

无法为连接URL'null'创建类''的JDBC驱动程序:Tomcat&SQL Server JDBC驱动程序

JDBC连接到SQL Server使用动态TCP端口

使用mssql-jdbc自由连接到Sql Server

无法使用 Spring JDBC 通过 SSL 连接到 SQL Server

无法使用JDBC连接到Sql Server数据库

Java 8上的SQL Server JDBC错误:驱动程序无法通过使用安全套接字层(SSL)加密建立到SQL Server的安全连接

SQL Server JDBC错误:驱动程序无法使用安全套接字层(SSL)加密建立与SQL Server的安全连接

如何将MS JDBC驱动程序与MS SQL Server 2008 Express一起使用?

什么是SQL Server的JDBC驱动程序类名

LocalDateTime和SQL Server JDBC驱动程序4.2

找不到适合JDBC SQL Server的驱动程序

如何使用JDBC连接到Azure SQL

如何使用带有无会话的Gremlin驱动程序通过Java连接到Gremlin Server

使用适用于SQL Server的新ODBC驱动程序连接到LocalDB

vba mac使用ActualTech odbc驱动程序连接到sql server

R通过JDBC到SQL Server连接-驱动程序版本错误

如何使用 JDBC 连接到具有集成安全性的 Sql Server(通过 persistence.xml)

无法使用jdbc驱动程序连接到mysql

有没有一种方法可以使用SQL Server JDBC驱动程序显示PRINT结果?

SQL Server驱动程序错误无法找到或加载JDBC驱动程序:

已解决与 SQL Server 的连接:java.sql.SQLException:找不到适合 jdbc:sqlserver 的驱动程序

在Java中测试JDBC连接时如何检查有效的驱动程序名称

如何使用SQL Server JDBC批量复制API