【问题标题】: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"

但是却导致编译错误:

非法转义字符

这是怎么引起的,我该如何解决?

【问题讨论】:

  • 您遇到错误了吗? “没有结果”到底是什么意思?
  • 如果你真的是在 JSP 中这样做,那就……不要。

标签: 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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多