xml - StreamResult - 绕过空间错误
我刚刚遇到一个有趣的 bug。我尝试使用 user.home 来保存路径;问题是 win xp 中的 user.home 是以
X:\文档和设置\
...确保空格取代其位置。异常说
java.io.FileNotFoundException: C:\Documents%20and%20Settings ...
所以,正如我所见,所有空格都被替换为“%”;我认为这是一个编码问题,但我不太确定。错误“5077403”页面不提供任何解决方法;但我希望应该有一些?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试更新您正在使用的 XML 库的版本。根据您引用的错误报告,它被标记为从 Java 1.5 开始已修复。
您看到的 % 实际上是有效的 URL 编码 - %20 代表空格。
另请参阅我在我的个人博客文章顶部发布的有关这些库版本的一些详细信息,网址为 http://blogger.ziesemer.com/2009/01/xml-and-xslt-tips-and-tricks-for-java.html 。
Try updating the versions of the XML libraries you're using. Per the bug report you referenced, it is marked as fixed as of Java 1.5.
The %'s you're seeing are actually a valid URL encoding - with %20 representing a space.
Please see also some of the details I have posted around the versions of these libraries on the top of my personal blog post at http://blogger.ziesemer.com/2009/01/xml-and-xslt-tips-and-tricks-for-java.html .
一种技巧(应该适用于大多数 Win XP 系统)是使用类似以下内容:
如果代码碰巧在 Windows 7 或非 Windows 环境上运行,这将使
homeDir
保持不变。One hack (that should work on most Win XP systems) is to use something like this:
This will leave
homeDir
intact if the code happens to be running on Windows 7 or a non-Windows environment.此错误最简单、最正确的修复/解决方法是使用解码来替换结果系统 ID。
这将解码系统 ID 并用空格替换 %20。
The easiest and most rightful fix/ workaround for this bug is using decoding to replace the results system id.
This will decode the system Id and replace %20 with spaces.