内联javascript中的重音

Accents in inline javascript

本文关键字:javascript 内联      更新时间:2023-09-26

我知道,对于javascript警报重音字符应该写在unicode十六进制(例如,$是'u0161)。

但是,如果包含警报的javascript函数内联在html文档中,具有UTF-8编码,该怎么办?我还应该用unicode十六进制来写重音字符吗?

的例子:

<!DOCTYPE html>
<html lang="ro">
<head>
<meta charset="UTF-8">
</head><body>
<script type="text/javascript">
window.onload=error_alert();function error_alert(){alert('A apărut o eroare!')}
</script>
</body></html>

像这样写字符"+"是否安全,或者我应该使用'u0103 ?请记住,元字符集已经定义为UTF-8。

是的,你仍然可以在JavaScript字符串中使用转义序列,即使它们在HTML中是内联的。

像这样写字符"+"是否安全,或者我应该使用'u0103 ?请记住,元字符集已经定义为UTF-8。

视情况而定。如果你确定HTML文档包含<meta charset=utf-8>并且总是这样做,或者如果服务器发送Content-Type: text/html;charset=utf-8 HTTP头并且你确定它总是这样做,那么无论如何,使用原始符号而不转义。

但是有一个问题——这些事情并不总是在你的控制之下。访问者可能在代理后,该代理剥离或破坏HTTP标头或修改HTML响应的编码。

在任何情况下,最安全的做法是对任何非ASCII字符使用转义序列,因为这样整个源代码仅由ASCII字符组成。(可以对文档的HTML部分使用HTML字符引用,对CSS使用CSS转义序列。)