当我运行我的代码片段(如下所示)时,它将短划线( - ),单引号和双引号替换为�。
var button = document.querySelector('#fileInput + button');
var input = document.getElementById('fileInput');
var text = null;
input.addEventListener("change", addDoc);
button.addEventListener("click", handleText);
function addDoc(event) {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function(e) {
text = reader.result;
button.removeAttribute("disabled");
};
reader.onerror = function(err) {
console.log(err, err.loaded, err.loaded === 0, file);
button.removeAttribute("diabled");
};
a = reader.readAsText(event.target.files[0]);
console.log(a);
}
function handleText() {
addtoPreviousOutput();
changeOutputParagraph(text);
button.setAttribute("disabled", "disabled");
}
function changeOutputParagraph(newText) {
var element = document.getElementById("output");
element.innerHTML = newText;
}
function addtoPreviousOutput() {
var previousOutput = document.getElementById("output").innerHTML;
var previousOutput_sOutput = document.getElementById("previousOutput").innerHTML + "<br />";
console.log(previousOutput);
console.log(previousOutput_sOutput);
document.getElementById("previousOutput").innerHTML = previousOutput_sOutput + previousOutput;
}
&#13;
<p id="previousOutput"></p>
<p id="output"></p>
<input type="text" id="textInput" onkeypress="getText(event)" />
<input type="file" id="fileInput" accept="text/*" />
<button type="button" id="addDoc">Add Document</button>
&#13;
为什么会这样,我该如何解决?
I get this when I run my file which is 176 lines and 22 KB. 注意:这不是所有文字。
答案 0 :(得分:1)
FileReader当时只能读取一个文件,但是您要尝试两次读取文件:
reader.readAsText(event.target.files[0]);
console.log(reader.readAsText(event.target.files[0]));
你没有实际的理由这样做。只需存储第一个读取结果 - 并打印您已经读过的数据。
答案 1 :(得分:1)
readAsText
默认将文本读取为utf-8。您看到 而不是预期字符的原因是因为您的文本文件不是utf-8编码的
您可以将文件的编码传递给readAsText以正确读取文本。
e.g。拉丁语1
a = reader.readAsText(event.target.files[0], 'ISO-8859-1');