кодировка пути файла интерфейса vlc http - PullRequest
0 голосов
/ 08 августа 2011

У меня почти исправлена ​​эта проблема, но я собираю удаленный модуль поверх http-интерфейса VLC и у меня возникают проблемы с кодированием символа &.

Например, я получаю имя файла, которое выглядит как

C:\Users\Me\Music\Library\I Need a Doctor feat(Eminem & Skylar Grey)

Но что VLC получает, когда я экранирую + url кодирует имя файла

C:\Users\Me\Music\Library\I Need a Doctor feat(Eminem

Что мне сделать, чтобы это исправить?

Мой псевдо-JavaScript:

function escapePath(string){
    var fixed = "";
for(var i = 0; i < string.length; i++){
    if(string[i] == "\\"){
        fixed += "\\\\";
    }
    else if(string[i] == "&"){
        fixed += "%26"; // Doesn't work with or without this
    }
    else{
        fixed += string[i];
    }
}
    return encodeURIComponent(fixed);
}

Я знаю, что это плохо, но я не могу заставить .replace() работать правильно.Прокляни мое ужасное знание регулярных выражений.Я исправлю это позже

1 Ответ

0 голосов
/ 08 августа 2011

Спасибо Марку Б. Это сработало с некоторыми хитростями.

Последняя функция в итоге выглядела так:

return encodeURIComponent(str.replace(/!/g, '%21').replace(/'/g, '%27').replace(/\*/g, '%2A').replace(/\\/g, "\\\\"));

Хотелось бы только знать, почему это работает.

...