.properties 文件中的特殊字符 ("\")

Posted

技术标签:

【中文标题】.properties 文件中的特殊字符 ("\\")【英文标题】: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'。 使用正斜杠。 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

这是一个属性文件。编译器永远不会靠近它。 JVM 也是。当遇到反斜杠时,它会转义反斜杠并将下一个字符添加到String

以上是关于.properties 文件中的特殊字符 ("\")的主要内容,如果未能解决你的问题,请参考以下文章

急!C# 从文件名里去处特殊字符

java如何转换富文本框中的中文编码格式,且把标签变成特殊字符

Java 读写Properties配置文件

Java 读写Properties配置文件

Java 读写Properties配置文件

java-properties配置文件