从.txt文件到HTML

时间:2018-04-11 14:17:26

标签: javascript html utf-8 escaping

我正在读取本地.txt文件中的数据,并通过.innerHTML将其放入HTML正文中。基本上它的工作,但我有问题显示变音符号(ä,ö,ü,...)

document.getElementById('textbox2').innerText = "äöü";

没有问题,但是很快,因为我要显示的文本来自txtfile,因此umlaut将显示为questionmarkboxes

document.getElementById('textbox2').innerText = txtFileContentContainingUmlauts;

我尝试了很多组合来用转义序列替换txtfile内容:

...txtFileContentContainingUmlauts.replace("ä", "\u00c4");

反之亦然,但似乎没有任何效果。

有什么建议吗?

注意:我使用的是Notepad ++;编码是utf-8;我将标题和脚本中的字符集设置为“utf-8”

2 个答案:

答案 0 :(得分:0)

您是如何将文件内容转换为HTML的?我试图从文件输入加载文件内容,它适用于我。

function fileChanged() {
  var file = document.getElementById("file").files[0];
  if (file) {
    const reader = new FileReader();
    reader.readAsText(file, "UTF-8");
    reader.onload = function(evt) {
      document.getElementById("fileContents").innerText = evt.target.result;
    };
    reader.onerror = function(evt) {
      document.getElementById("fileContents").innerText = "error reading file";
    };
  }
}
<html>

<body>
  
  <form id="form">
    <input type="file" name="file" id="file" onchange="fileChanged()" />
  </form>
  <div id="fileContents"><i>file content will be displayed here</i></div>
</body>

</html>

答案 1 :(得分:0)

最后,它只是.txt文件本身的编码。在记事本中重新创建并解决了所有问题...... 感谢Arndt。