在JavaScript中,我创建了一个字符串,其中包含重音字符,例如“ò”或“à”,例如“òà”
我似乎无法在html中创建显示重音字符的文本节点:如果我直接传递它们,我会得到“黑色菱形中的白色问号”;如果我用相应的html实体替换重音字符,我会逐字打印实体。
这个功能
function showAccents() {
s1="ò à";
s2 = s1.replace(/ò/, "ò").replace(/à/, "à");;
var eD = document.getElementById("accent1");
var eHT1 = document.createTextNode(s1);
var eHT2 = document.createTextNode(s2);
eD.appendChild(eHT1);
eD.appendChild(eHT2);
}
制作以下文字:
ò& agrave
如何转换字符串以获取HTML中的重音字符?
答案 0 :(得分:4)
您可能缺少网页编码。确保您的HTML包含以下内容:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
或者这个(HTML5):
<meta charset="utf-8">
修改强>
现在看来问题是你的Javascript文件的编码。它也需要是Unicode(例如编码为UTF8),就好像它以非Unicode编码保存一样,你可能会被浏览器误解,而浏览器可能会用不同的编码读取这些。只需在文本编辑器中打开它并将其保存为UTF8(这样做会在文件的开头包含一个BOM,它将指定其编码,解决问题)
答案 1 :(得分:3)
原来我的xemacs用ISO-8859-1编码;当前版本不能轻易设置为UTF-8。
解决方法是在xhtml的标题中将编码信息从“utf-8”更改为“iso-8859-1”:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="http-equiv" content="Content-type: text/html; charset=ISO-88591"/>
<script type="text/javascript" src="js/conjutils.js" charset="iso-8859-1" />
<script type="text/javascript" src="js/xmlutils.js" charset="iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/conjugation.css" />
<title>Conjugation</title>
</head>
现在我可以在我的js文件中将字符串设置为'àò',浏览器将正确显示它。