簡體   English   中英

如何將重音字符從JavaScript傳遞給HTML?

[英]How to pass accented characters from JavaScript to HTML?

在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);
}

生成以下文本:

ò&agrave

如何轉換字符串以獲取HTML中的重音字符?

您可能缺少頁面編碼。 確保您的HTML包含以下內容:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

或者這個(HTML5):

<meta charset="utf-8">

編輯

現在看來問題是你的Javascript文件的編碼。 它也需要是Unicode(例如編碼為UTF8),就好像它以非Unicode編碼保存一樣,你可能會被瀏覽器誤解,而瀏覽器可能會用不同的編碼讀取這些。 只需在文本編輯器中打開它並將其保存為UTF8(這樣做會在文件的開頭包含一個BOM,它將指定其編碼,解決問題)

結果我的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文件中將字符串設置為'àò',瀏覽器將正確顯示它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM