【问题标题】:How to decode a path and open related file?如何解码路径并打开相关文件?
【发布时间】:2013-09-05 15:00:03
【问题描述】:

我正在尝试在 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) &amp;.mp3

Java:

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

但我无法在代码中使用生成的 path 找到文件。 exists()isFile() 始终为 false,尽管在调试器中路径显示正确。

我应该如何进行?

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

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

【问题讨论】:

标签: java ruby utf-8 utf8-decode


【解决方案1】:

使用 LANG 环境变量解决。

【讨论】:

    猜你喜欢
    • 2011-04-15
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2018-09-11
    • 1970-01-01
    • 2016-06-24
    相关资源
    最近更新 更多