【发布时间】:2013-10-07 05:29:36
【问题描述】:
在 bucabay 的帮助下,我们能够将特殊字符编码为 html 实体 以下链接供参考: (How to convert characters to HTML entities using plain JavaScript) 现在我们要对它们进行解码,即如何再次将 HTML 实体转换为特殊字符。
问候, AA。
【问题讨论】:
在 bucabay 的帮助下,我们能够将特殊字符编码为 html 实体 以下链接供参考: (How to convert characters to HTML entities using plain JavaScript) 现在我们要对它们进行解码,即如何再次将 HTML 实体转换为特殊字符。
问候, AA。
【问题讨论】:
您可以使用基本的 javascript 或使用 jQuery..
newText = "Übergroße Äpfel mit Würmern";
var my_unescaped_text = jQuery('').html(newText).text();
【讨论】:
newText) 包含类似 <svg onload=alert(1)> 的内容,则将执行 alert(1)。这个解决方案还依赖于浏览器对字符引用的支持,即使在现代浏览器中也不是完美的:mathias.html5.org/tests/html 它也不会在非浏览器环境中工作。
您可以通过让浏览器将文本解析为 HTML 来做到这一点,例如
var text = "Übergroße Äpfel mit Würmern";
var span = document.createElement('span');
span.innerHTML = text;
alert(span.innerHTML); // contains the characters as decoded
【讨论】:
text) 包含类似 <svg onload=alert(1)> 的内容,则将执行 alert(1)。这个解决方案还依赖于浏览器对字符引用的支持,即使在现代浏览器中也不是完美的:mathias.html5.org/tests/html 它也不会在非浏览器环境中工作。
对于避免其他答案中的问题的可靠解决方案,请使用the he library。从它的自述文件中:
he(用于“HTML 实体”)是用 JavaScript 编写的强大的 HTML 实体编码器/解码器。它支持all standardized named character references as per HTML,处理ambiguous ampersands 和其他极端情况just like a browser would,具有广泛的测试套件,并且——与许多其他JavaScript 解决方案相反——he 可以很好地处理星体Unicode 符号。 An online demo is available.
以下是您的使用方法:
var html = 'Übergroße Äpfel mit Würmern';
var decoded = he.decode(html);
// → `decoded` is now 'Übergroße Äpfel mit Würmern'
【讨论】: