2016-04-20 2 views
0

У меня возникают проблемы с открытием файлов с определенными символами в nodejs с использованием id3js.Проблемы с открытием файлов с помощью nodejs и id3

Файл я пытаюсь читать, "14 What'z Ya Phone # (Feat. Danny Bo.mp3"

Ошибка я получаю это /14%20What'z%20Ya%20Phone%20 net::ERR_FILE_NOT_FOUND

Как вы можете видеть, его отрезав на # в имя исходного файла. Какие шаги я должен предпринять, чтобы убедиться, что узел использует все имя файла при поиске файла.

+1

Просто предложение: вы пробовали URL-кодирование # как% 23? Это работает? – Toonijn

+0

Да, это сработало! Это просто для # или есть список конверсий, которые мне нужно будет сделать. – Mustafa

ответ

2

Есть некоторые классические символы, которые не должны быть в URL-адресах. Примерами являются:? # @/\ : а также %. Я думаю, что/и \ очевидны, почему бы и нет (пути к файлам). ? используется для получения запросов. # используется как ярлык для идентификатора на странице. Адрес электронной почты использует @, также ftp может использовать @. Вы можете указать порт в URL-адресе bij:. % используется для кодирования URL.

Этих символы маскирования вероятно, будут работать, (большинство из этих символов не допускается в именах файлов вашей файловой системы):

? -> %3F 
# -> %23 
@ -> %40 
/-> %2F 
\ -> %5C 
: -> %3A 
% -> %25 

В моем Linux Mint я могу переименовать файл: «# @: \.текст'. Вы можете экспериментировать с тем, какие символы вам нужно заменить.

Примечание Если вы заменяете на javascript, не забудьте установить глобальный флаг: "".replace(/\?/g, "%3F").