0

我正在尝试解析 Mac OS 上的 iTunes XML 库文件。

在 iTunes 文件中,我有这个字符串:

<key>Location</key>
<string>file://localhost/home/user/Downloads/album/01%C4%2024%5F7%20%28Intro%29%20&#38;.mp3</string>

如您所见,它似乎是 URL 编码的。现在,下一步是在文件系统上查找并读取此文件,但似乎我找不到使用 Java 或 Ruby 执行此操作的正确方法。

我的主要目标是在 Java 中做到这一点,但为了简单起见,我在 Ruby 中尝试了这个:

2.0.0p247 :003 > URI.decode(str)
 => "file://localhost/home/user/Downloads/album/01\xC4 24_7 (Intro) &#38;.mp3" 
2.0.0p247 :004 > CGI.unescape(str)
 => "file://localhost/home/user/Downloads/album/01\xC4 24_7 (Intro) &#38;.mp3" 

该文件在文件管理器中显示为/home/user/Downloads/album/01Ä 24_7 (Intro) &.mp3

爪哇:

  path = URLDecoder.decode( originalPath, "ISO-8859-1" );
  --
  path = URLDecoder.decode( originalPath, "UTF-8" );
  --
  path = new java.net.URI(originalPath).getPath();

但我无法使用生成path的代码找到文件。exists()或者isFile()总是错误的,尽管在调试器中路径正确显示。

我应该如何进行?

可悲的是,我不是从操作系统中获取文件名,而是从 XML 文件中获取。我遇到了一个长期存在的 JVM 错误吗?

将 JVM 设置为特定的语言环境是不可接受的,因为我不需要只打开用户语言环境中的文件。

4

1 回答 1

0

使用 LANG 环境变量解决。

于 2013-09-08T14:38:58.223 回答