JavaScript - Создание файла .SRT - PullRequest
0 голосов
/ 08 мая 2018

Я сделал скрипт для редактирования моих субтитров в браузере. не в текстовых редакторах и т. д., поэтому я сделал все, и я нахожусь на последней стадии, когда я нажимаю кнопку «Сохранить», чтобы загрузить отредактированную версию, Мой браузер автоматически загружает файл SRT, как и ожидалось, но, тем не менее, подзаголовок отображается как «Маленькие квадратные прямоугольники» вместо арабского текста, который я написал и отредактировал.

Что я вижу на VLC Video Player:

SCR1

Что у меня в файле SRT:

1
00:00:05,796 --> 00:00:06,888 
چیرۆكم پێ بڵێ

2
00:00:07,048 --> 00:00:08,265 
چیرۆكم پێ بڵێ

3
00:00:08,424 --> 00:00:09,846 
چیرۆكم پێ بڵێ

Код, использованный для создания отредактированной версии субтитров:

    // Function to download data to a file
function download(data, filename, type) {
    var file = new Blob([data], {type: type});
    if (window.navigator.msSaveOrOpenBlob) // IE10+
        window.navigator.msSaveOrOpenBlob(file, filename);
    else { // Others
        var a = document.createElement("a"),
                url = URL.createObjectURL(file);
        a.href = url;
        a.download = filename;
        document.body.appendChild(a);
        a.click();
        setTimeout(function() {
            document.body.removeChild(a);
            window.URL.revokeObjectURL(url);  
        }, 0); 
    }
}

А потом:

download(all_str,"anyth.srt","text/html")

Строка all_str - это моя новая отредактированная версия субтитров ... все разделены новыми строками, как и версия текстового редактора

Подзаголовок работает с английским и другими языками, кроме арабского

Что я сделал, чтобы исправить это:

  • Изменено text/html на text/plain и text/plain utf-8 и text/plain charset=utf-8, но не работает
  • Изменен тип кодировки VLC Player с Universal на utf8, но он не работал

Я думаю, это связано с типом кодировки, что-то, что я пропустил или не знаю? пожалуйста, заполните меня

1 Ответ

0 голосов
/ 08 мая 2018

Вы все делаете правильно, однако большинство наших текущих операционных систем работают на Windows-1256 .. Я проверил ваш код с этим Unicode, он работает с арабским и персидским языками:

Просто измените:

text/plain;charset=windows-1256
...