gpt4 book ai didi

javascript - 在 node.js 中转换 itune XML 播放列表时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:33 24 4
gpt4 key购买 nike

不久前,我编写了一个快速的小 Node 命令行实用程序,用于将 XML 格式的 itunes 播放列表转换为 m3u、xspf 等。这样我就可以在工作中的 Linux 盒子、Android 手机* 等上使用它们。

* 我有超过 25 GB 的音乐收藏,doubletwist 等人在尝试与我的 Mac 同步时就崩溃了

一开始这很好,但随着我的音乐收藏越来越多,我遇到了一个障碍:似乎没有媒体播放器可以找到任何包含非英语 unicode 字符(例如 ñ、í 和几乎所有日语汉字)的文件。并不是每个字符都会导致此问题,但在大多数情况下,它是一个问题。

由于itunes文件路径是部分url编码的(并且不需要匹配目标格式的约束),并且需要部分替换为目标计算机上的正确路径,因此我有以下代码来处理文件路径(删除不相关的内容):

let location;

// need try/catch because some track names contain unescaped '%' that
// cause the decode function to throw.
try {
location = decodeURIComponent(x.location.slice(7));
} catch (e) {

// function references a hash of about 200 url encodings and
// replaces occurences of them in the path, poor man's (slow)
// replacement for the built-in
location = replaceURLEscapes(x.location.slice(7));
}

我尝试过 decodeURIComponent、decodeURI 以及上面引用的我自己的自定义函数。以下是 XML 文件中的示例:

file:///Users/username/Music/iTunes/iTunes%20Media/Music/Compilations/Chronicles%20of%20Time/3-05%20Melodi%CC%81a%20de%20la%20montan%CC%83a%20(feat.%20Doug%20Perry%20&%20Matheus%20S.%20Garcia%20Souza).m4a

转换为:

/home/username/Music/Compilations/Chronicles of Time/3-05 Melodía de la montaña (feat. Doug Perry & Matheus S. Garcia Souza).m4a

看起来不错,但是VLC、clementine等找不到。这是直接来自 Nautilus 的文件名:

3-05 Melodía de la montaña (feat. Doug Perry & Matheus S. Garcia Souza).m4a

位于路径中引用的目录中。请注意,decodeURIComponent 解释的变形是在“a”而不是“n”上(我的函数不会出现该错误,因此这本身不是问题)。 我如何修改它以便媒体播放器可以找到轨道?

最佳答案

所以问题最终出在组合字符上。解码,normalizing ,并重新编码修复它。

关于javascript - 在 node.js 中转换 itune XML 播放列表时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40049861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com