我找到这篇文章:http://ecmanaut.blogspot.ro/2006/07/encoding-decoding-utf8-in-javascript.html
还有许多其他人推荐了这种方法。但 unescape(encodeURIComponent(srt)) 似乎对我不起作用。我正在尝试转换使用 XMLHttpRequest
获得的文件的内容。
使用unescape(encodeURIComponent(srt))
之前,unicode字符显示为“?”,转换后,所有unicode字符显示为“�”。所以我假设转换失败。
文件本身是用 ANSI 编码的。
这是 fiddle :http://jsfiddle.net/9g6zkmof/1/
我需要它在纯 JavaScript 中工作。
如果您对 OpenSubtitles 的字幕有同样的问题,请阅读 this answer .否则,所选答案就是正确的。
谢谢
最佳答案
正如您所说,它不是以 UTF-8 编码的:
var path = 'http://dl.opensubtitles.org/en/download/filead/src-api/vrf-bfafe1c11f/sid-85k8neb5gpmo3npqoog00t6c64/1954590765.srt'
var xhr = new XMLHttpRequest();
xhr.open("GET", path, false);
xhr.overrideMimeType('text/plain; charset=iso-8859-1');
xhr.send();
<强> FIDDLE
关于JavaScript 强制 UTF-8 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28293926/