打开字幕字符编码
Open subtitles characters encoding
var request = require("request");
var options = { method: 'GET', url:'http://dl.opensubtitles.org/en/download/filead/src-api/vrf-19af0c55/sid-ste0uene5gb0jh8dsrma7tcq15/1955127527.srt'};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
使用浏览器正常下载会产生正确的文件编码。使用邮递员下载文件,我得到编码不正确的文档损坏。
示例:Je suis d sol e。Je sais
没有成功,我试图将"内容类型"标头设置为 utf8...
http.get(sub.url, function(res) {
res.pipe(iconv.decodeStream('win1252')).collect(function(err, decodedBody) {
srt2vtt(decodedBody, function(err, vttData) {
if (err) throw new Error(err)
let filename = 'sub-' + sub.lang + 'vtt'
let vttPath = path.join(dir, filename)
fs.writeFileSync(vttPath, vttData)
cb(vttPath)
})
});
});
https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding我使用流媒体支持来让它工作。
这就是你可以做到的。 你需要做npm install --save iconv-lite
var iconv = require('iconv-lite');
var request = require("request");
var options = { method: 'GET', url:'http://dl.opensubtitles.org/en/download/filead/src-api/vrf-19af0c55/sid-ste0uene5gb0jh8dsrma7tcq15/1955127527.srt'};
request(options, function (error, response, body) {
if (error) throw new Error(error);
var formattedData = iconv.decode(body, 'iso-8859-1');
console.log(formattedData);
});
你可以查看 https://github.com/request/request/issues/118,他建议使用iconv-lite
。
相关文章:
- 为什么字符编码对URL很重要
- 以纯文本加载的脚本-未声明纯文本文档的字符编码
- 在cshtml中对特殊字符进行编码
- 打开字幕字符编码
- 使用节点请求模块的 UTF8 字符编码
- 使用特殊字符 Javascript 对 URL 进行编码
- 仅替换 iframe 的编码字符 Jquery
- document.getElementById(foo).value,带有html编码的特殊字符
- JSON编码一个包含#和其他特殊字符的字符串
- 阻止自动HTML特殊字符编码
- Base64在PHP和JavaScript之间使用加号或与号字符对字符串进行编码
- 如何在输出到 html 之前停止 asp.net 编码字符
- 正在解码HTML十进制编码字符
- 将特殊字符转换为Html编码字符
- 在Node.js中解码URL编码字符
- 使用PHP在javascript中为mailto编码字符
- 编码字符破坏IE8上的Knockout js数据绑定
- 可以在页面标题中使用UTF-8编码字符吗?
- 从JSON元素的内容构造URL以避免输出中出现编码字符的正确方法是什么?
- Javascript FileReader readAsText函数不理解utf-8编码字符,如ä和& # 2