Итак, не программируя 23 года, я решил начать изучать Javascript. Я пытаюсь написать программу для чтения моих музыкальных файлов и создания HTML-страницы на основе файлов, найденных в определенном каталоге.
Идет хорошо, пока я не нажму имена файлов, содержащие диакритические знаки (например, é, ü, ø и т. д.)
Например: Андре Хейзес превращается в: Андрэ Хейзес
Например: Андреа Бочелли и Сара Брайтман - Время прощаться [Con Te Partirò] (одиночный) ходв Andrea Bocelli & Sarah Brightman - время попрощаться [Con Te PartiroÌ €] (single)
Созданная мной ссылка больше не работает
Команда, которую я использую для создания HTMLутверждение:
<td><a href="${item.vDir}/${item.vFilename}">${item.vFilename}</a></td>
Это код, который я использую для чтения файлов из файловой системы. Я работаю на Mac, OS Catalina, так что в основном это вариант Unix.
// List all files in a directory in Node.js recursively in a synchronous fashion
var ReadDirFiles = function(pdir, pfilelist) {
files = vFileSystem.readdirSync(pdir,"utf-8");
filelist = pfilelist;
files.forEach(function(file) {
if (vFileSystem.statSync(pdir + '/' + file).isDirectory()) {
filelist = ReadDirFiles(pdir + '/' + file, filelist);
}
else {
vstats = vFileSystem.statSync(pdir + '/' + file);
// debug info
// console.log(vstats);
filelist.push({vFilename: file, vDir: pdir, vBirthtime: formatDate(vstats.birthtime), vSize: vstats.size});
}
});
return filelist;
};
Это оператор, который я использую для записи вывода на диск, и оказывается, что проблема в операторе write:
fs.writeFileSync(buildPathHtml.buildPathHtml(), html);
Когда вывод записывается обратно на диск, происходит преобразование диакритических знаков.
Кто-нибудь знает хитрость, как работать с диакритическими знаками?