如何将重音符号从JavaScript传递到HTML?

use*_*670 2 html javascript

在JavaScript中,我创建了一个带有重音字符的字符串,例如'ò'或'à',例如“òà”

我似乎无法在html中创建显示带重音符号的文本节点:如果我直接传递它们,则会出现“黑色菱形中的白色问号”;如果我将重音符号替换为相应的html实体,则会逐字打印实体。
该功能

function showAccents() {
  s1="ò à";
  s2 = s1.replace(/ò/, "ò").replace(/à/, "&agrave");;
  var eD = document.getElementById("accent1");
  var eHT1 = document.createTextNode(s1);
  var eHT2 = document.createTextNode(s2);
  eD.appendChild(eHT1);
  eD.appendChild(eHT2);
}
Run Code Online (Sandbox Code Playgroud)

产生以下文本:

??òagrave

如何将字符串转换为HTML中带重音符号的字符?

Cla*_*fou 5

您可能缺少页面编码。确保您的HTML包含以下任一内容:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Run Code Online (Sandbox Code Playgroud)

或以下(HTML5):

<meta charset="utf-8">
Run Code Online (Sandbox Code Playgroud)

编辑

现在看来,问题出在您的Javascript文件的编码。它也需要是Unicode(例如,编码为UTF8),就好像它以非Unicode编码保存时,浏览器可能会误解à和à,而浏览器可能会使用不同的编码来读取它们。只需在文本编辑器中将其打开并将其另存为UTF8(这样做将在文件的开头包含一个BOM,以指定其编码,从而解决了该问题)