JavaScript - 生成.SRT文件

时间:2018-05-08 09:52:45

标签: javascript blob subtitle

我制作了一个脚本来在我的浏览器中编辑我的字幕。不是在文本编辑等。所以我做了一切,我在最后阶段,当我点击按钮'保存'要下载我编辑的版本,我的浏览器会自动按预期下载SRT文件,但是字幕会显示为“小方框”和#39;而不是我编写和编辑的阿拉伯语文本..

我在VLC视频播放器上看到的内容:

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/plaintext/plain utf-8以及text/plain charset=utf-8,但无法正常工作
  • 将VLC播放器的编码类型从Universal更改为utf8但无法正常工作

我认为这必须对编码类型做些什么,我错过了或者不知道?请填写我的

1 个答案:

答案 0 :(得分:1)

你正在做的一切,但我们目前的大多数操作系统都在Windows-1256上运行。 我用这个unicode测试了你的代码,它适用于阿拉伯语和波斯语:

只需改变:

text/plain;charset=windows-1256