【问题标题】:Special characters ("\") in .properties-file.properties 文件中的特殊字符 ("\")
【发布时间】:2016-12-14 04:31:15
【问题描述】:

我正在开发一个在 Windows 上执行的 Java 应用程序。我在 .properties 文件中有几个反斜杠(“\”)。这是文件的样子:

dir=\\127.0.0.1\d$\dir\dir2\dir3

我使用Spring注解Value读取了属性dir

@Value("${dir}")
protected String dir;

当在代码中使用属性dir 时,这会产生字符串127.0.0.1d$dirdir2dir3

我尝试过这样的 unicode 转义:

dir=\u005C\u005C127.0.0.1\u005Cd$\u005Cdir\u005Cdir2\u005Cdir3

我也尝试过像这样的反斜杠转义:

dir=\\\\127.0.0.1\\d$\\dir\\dir2\\dir3

当在代码中使用属性dir 时,上述两种尝试都会产生字符串\\127.0.0.1d$dirdir2dir3

我希望在代码中使用属性时将属性dir 设置为\\127.0.0.1\d$\dir\dir2\dir3。 .properties 文件应该是什么样子才能得到这个结果?

【问题讨论】:

  • 你试过单引号吗?
  • @NicolasHenneaux 是的。这将导致'127.0.0.1d$dirdir2dir3'。
  • 使用正斜杠。

标签: java spring properties-file


【解决方案1】:

您可以使用正斜杠,超出其在 Windows 上工作的原因

【讨论】:

    【解决方案2】:

    反斜杠转义旨在让编译器了解下一个字符是有效的并将结果存储在String 中。当您键入\\127.0.0.1\d$\dir\dir2\dir3 时,所有反斜杠都被转义,除了第二个(显然)。不要在这里使用String 对象。尝试使用Properties 并发布您的结果。我有相同的经验,并且使用 Properties 效果很好。

    【讨论】:

    • 这是一个属性文件。编译器永远不会靠近它。
    • JVM 也是。当遇到反斜杠时,它会转义反斜杠并将下一个字符添加到String
    猜你喜欢
    • 1970-01-01
    • 2010-11-09
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 2014-12-31
    • 1970-01-01
    相关资源
    最近更新 更多