Java中的文件对象不支持字符en-dash' - '(unicode \u2013
)。它会自动将en-dash字符转换为连字符' - '(unicode \u002D
)。
我正在使用ScmProvider.list方法:
ListScmResult list(ScmRepository repository, ScmFileSet fileSet,
boolean recursive, ScmVersion version)
列出存储库中存在的fileSet的每个元素(文件和目录)。
在文件集中,其中一个项目(SCM文件)的repo项目用正常连字符替换了en-dash。
我使用的是Java 1.6版。对此有任何限制吗?
答案 0 :(得分:1)
您是说您认为java.io.File
会自动将字符\u2013
转换为常规连字符(代码\u002D
)吗?这不是真的,至少在运行Oracle Java 6更新35的Windows 7机器上没有。
我尝试了以下代码。它创建了两个文件,文件名不同;一个是长划线,一个是常规划线。
new File("C:\\Temp\\Hello\u2013World").createNewFile();
new File("C:\\Temp\\Hello-World").createNewFile();
因此,无论您发生什么事情都不是由java.io.File
中的某些自动转换或限制引起的。