即使我使用字符集,我也总是将非ASCII字符(例如à
,ñ
,é
)转义为HTML实体(à
,&entilde;
,é
) UTF-8(仅用于文本编辑器支持和通用性)。
我的问题是我将所有文本保留在外部PHP文件中,以用于多语言用途。
问题出在我必须转义必须提醒的字符串:
此<button onclick="alert('àèìòù')">Click me</button>
输出此:àèìòù
,
[此<script>alert("àèìòù")</script>
输出以下:à ;è ;ì ;ò ;ù ;
。
原因是什么?
由于我也想在第二个示例中转义字符,如何以两个示例都支持的方式做到这一点?
那些转义的字符只能由HTML读取。
如果您想在JS代码中处理它们(尽管使用JQuery),一种快速而肮脏的方法是将它们添加到元素中并读取输出,否则,如果您只想在页面中的某个地方显示输出,那是超级好容易:)
请参见下面的两个示例:
var myString = "àèìòù";
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>