【问题标题】:JDBC connection string SQL Server with JSP causes "Illegal escape character" error带有 JSP 的 JDBC 连接字符串 SQL Server 导致“非法转义字符”错误
【发布时间】:2013-11-23 12:06:40
【问题描述】:
如果我的 SQL Server 2012 的名称是 JOSEAN\REGULUS,我的连接字符串是什么?
"jdbc:sqlserver://JOSEAN\REGULUS;databasename = BD12272"
但是却导致编译错误:
非法转义字符
这是怎么引起的,我该如何解决?
【问题讨论】:
标签:
java
jsp
jdbc
sql-server-2012
【解决方案1】:
java documentation 说:
以反斜杠 (\) 开头的字符是转义序列,具有
对编译器的特殊意义。下表显示了 Java
转义序列:
-
\t此时在文本中插入一个制表符。
-
\b 此时在文本中插入一个退格键。
-
\n 此时在文本中插入换行符。
-
\r 此时在文本中插入回车。
-
\f 此时在文本中插入换页符。
-
\' 此时在文本中插入一个单引号字符。
-
\" 此时在文本中插入双引号字符。
-
\\ 此时在文本中插入一个反斜杠字符。
您的连接字符串有一个反斜杠,因此 java 需要一个转义序列,而 \R 不是(非法转义字符)。
因此,您必须转义反斜杠,您的连接字符串应如下所示:
"jdbc:sqlserver://JOSEAN\\REGULUS;databasename = BD12272"
【解决方案2】:
试试这个:
"jdbc:sqlserver://JOSEAN;instanceName=REGULUS;databaseName=BD12272"