繁体   English   中英

JavaScript强制执行UTF-8编码

[英]JavaScript force UTF-8 encoding

我找到了这篇文章: http : //ecmanaut.blogspot.ro/2006/07/encoding-decoding-utf8-in-javascript.html

还有许多其他人推荐这种方法。 但是unescape(encodeURIComponent(srt))似乎对我不起作用。 我正在尝试转换通过XMLHttpRequest获取的文件的内容。

在使用unescape(encodeURIComponent(srt)) ,Unicode字符显示为“?”,转换后,所有Unicode字符显示为“�”。 因此,我假设转换失败。

文件本身使用ANSI编码。

这是小提琴: http : //jsfiddle.net/9g6zkmof/1/

我需要使用纯JavaScript工作。

如果您在使用OpenSubtitles中的字幕时遇到相同的问题,请阅读此答案 否则,所选答案是正确的答案。

谢谢

如您所说,它不是用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();

小提琴

我给OpenSubtitles的网站管理员发送了一封电子邮件,他的回复是将我定向到他四天前的一篇帖子:

http://forum.opensubtitles.org/viewtopic.php?f=1&t=14992&p=30697#p30697

现在,您可以使用任何所需的编码请求任何字幕,服务器将使用iconv()对其进行编码。 这不是100%,因为iconv()也会失败,但这是最佳情况。

所以这个链接:

http://dl.opensubtitles.org/en/download/filead/src-api/vrf-bfafe1c11f/sid-85k8neb5gpmo3npqoog00t6c64/1954590765.srt

现在变成:

http://dl.opensubtitles.org/en/download/subencoding-utf8/file/1954590765

您会收到以UTF-8编码的字幕文件。

小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM