我使用XMLHttpRequest来读取PDF文档http://www.virtualmechanics.com/support/tutorials-spinner/Simple2.pdf
%PDF-1.3
%âãÏÓ
[...]
并将其内容打印到控制台:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
console.log('âãÏÓ');
}
};
xhr.open('GET', 'http://www.virtualmechanics.com/support/tutorials-spinner/Simple2.pdf', true);
xhr.send();
然而,控制台显示:
%PDF-1.3
%����
[...]
âãÏÓ
(上述最后一行是为了验证控制台是否能够实际显示那些字符,而引用了上面的console.log
。)
显然,在某些时候这些字符被错误地编码了。出了什么问题以及如何修复它?
âãÏÓ
这些字符的字形... - mklXMLHttpRequest.responseText
。这个属性已经试图将响应解释为文本,但似乎失败了。PDF 文件不是文本文件,因此不应该被视为文本。你可能想尝试使用XMLHttpRequest.response
,另外可以参考 MDN 的 发送和接收二进制数据 页面。 - mkl