JS 保留字符的正则值
JS Keep Character's Regular Value
当我 运行 我的代码片段(如下所示)时,它将破折号 (-)、单引号和双引号替换为 �.
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;
}
<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>
为什么会这样,我该如何解决?
编辑
I get this when I run my file which is 176 lines and 22 KB. 注意:这不是全部文字。
一个 FileReader 一次只能读取一个文件,但是您正在尝试读取该文件两次:
reader.readAsText(event.target.files[0]);
console.log(reader.readAsText(event.target.files[0]));
您没有实际理由这样做。只需存储第一个读取结果 - 并打印您已经读取的数据。
readAsText
默认将文本读取为 utf-8。您看到 � 而不是预期字符的原因是因为您的文本文件不是 utf-8 编码的。
您可以将文件的编码传递给 readAsText 以正确读取文本。
例如对于拉丁语 1
a = reader.readAsText(event.target.files[0], 'ISO-8859-1');
当我 运行 我的代码片段(如下所示)时,它将破折号 (-)、单引号和双引号替换为 �.
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;
}
<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>
为什么会这样,我该如何解决?
编辑
I get this when I run my file which is 176 lines and 22 KB. 注意:这不是全部文字。
一个 FileReader 一次只能读取一个文件,但是您正在尝试读取该文件两次:
reader.readAsText(event.target.files[0]);
console.log(reader.readAsText(event.target.files[0]));
您没有实际理由这样做。只需存储第一个读取结果 - 并打印您已经读取的数据。
readAsText
默认将文本读取为 utf-8。您看到 � 而不是预期字符的原因是因为您的文本文件不是 utf-8 编码的。
您可以将文件的编码传递给 readAsText 以正确读取文本。
例如对于拉丁语 1
a = reader.readAsText(event.target.files[0], 'ISO-8859-1');