Js转义特殊字符

问题描述 投票:0回答:1

即使我使用字符集,我也总是将非ASCII字符(例如àñé)转义为HTML实体(à&entilde;é) UTF-8(仅用于文本编辑器支持和通用性)。

我的问题是我将所有文本保留在外部PHP文件中,以用于多语言用途。

问题出在我必须转义必须提醒的字符串:

<button onclick="alert('&agrave;&egrave;&igrave;&ograve;&ugrave;')">Click me</button>输出此:àèìòù

[此<script>alert("&agrave;&egrave;&igrave;&ograve;&ugrave;")</script>输出以下:&agrave ;&egrave ;&igrave ;&ograve ;&ugrave ;


原因是什么?

由于我也想在第二个示例中转义字符,如何以两个示例都支持的方式做到这一点?

javascript php html escaping alert
1个回答
0
投票

那些转义的字符只能由HTML读取。

如果您想在JS代码中处理它们(尽管使用JQuery),一种快速而肮脏的方法是将它们添加到元素中并读取输出,否则,如果您只想在页面中的某个地方显示输出,那是超级好容易:)

请参见下面的两个示例:

var myString = "&agrave;&egrave;&igrave;&ograve;&ugrave;";

var escaped = $('<textarea />').html(myString).text();
alert(escaped);

document.getElementById("myElement").innerHTML = myString;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span id="myElement">a</span>
© www.soinside.com 2019 - 2024. All rights reserved.