首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JavaScript alert 無法解析 HTML 實體編碼 Unicode 字符

     編輯:程式設計疑難解答

問題現象

代碼 alert("abc"); 彈出框顯示字面文本 abc,而非預期的 abc。

原因分析

  • a 是 HTML 實體編碼(數字實體),僅在 HTML 解析階段由瀏覽器轉換為對應字符 a。
  • JavaScript 字符串字面量不會自動解析 HTML 實體,alert 直接接收原始字符串。

解決方案

在 JavaScript 中直接使用 Unicode 轉義序列:

alert("\u0061bc"); // \u0061 為 'a' 的 Unicode 編碼
// 或直接寫字符
alert("abc");

補充說明

若從 HTML 屬性或內容中獲取包含實體的字符串,需先經過 HTML 解析(如設置 innerHTML 再讀取 textContent),或使用現成庫(如 he)解碼實體。

理解 HTML 實體與 JavaScript 字符串的處理時機差異,避免此類困惑。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved