我刚遇到一个有趣的bug。我试图使用user.home来保存路径;事情是win xp中的user.home以
开头X:\ Documents and Settings \
......确保空间取而代之。例外是
java.io.FileNotFoundException:C:\ Documents%20and%20Settings ...
...所以,正如我所看到的,所有空格都被'%'取代;我想这是一个编码问题,但我不太确定。错误“5077403”页面不提供任何解决方法;但我希望应该有一些?
答案 0 :(得分:1)
尝试更新您正在使用的XML库的版本。根据您引用的错误报告,它在Java 1.5中标记为已修复。
你看到的%实际上是一个有效的URL编码 - %20代表一个空格。
请参阅我在http://blogger.ziesemer.com/2009/01/xml-and-xslt-tips-and-tricks-for-java.html个人博客文章顶部发布的有关这些图书馆版本的部分详细信息。
答案 1 :(得分:0)
一个hack(应该适用于大多数Win XP系统)就是使用这样的东西:
String homeDir = System.getProperty("user.home");
homeDir = homeDir.replace("Documents and Settings", "DOCUME~1");
如果代码恰好在Windows 7或非Windows环境中运行,这将使homeDir
保持不变。
答案 2 :(得分:0)
此错误最简单,最合理的修复/解决方法是使用解码来替换结果系统ID。
streamResult.setSystemId(java.net.URLDecoder.decode(streamResult.getSystemId(), "UTF-8"));
这将解码系统ID并用空格替换%20。