每当我在我的 javascript 源代码中使用 \u2028 字符文字并将内容类型设置为“text/html; charset=utf-8”时,我都会收到一个 javascript 解析错误。
例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>json</title>
<script type="text/javascript" charset="utf-8">
var string = '
';
</script>
</head>
<body>
</body>
</html>
如果<meta http-equiv>
遗漏了一切,一切都会按预期进行。我已经在 Safari 和 Firefox 上对此进行了测试,两者都表现出相同的问题。
关于为什么会发生这种情况以及如何正确解决此问题(不删除编码)的任何想法?
编辑:经过更多研究,具体问题是问题字符是使用 JSONP 返回的。然后浏览器将其解释为 u2028 作为换行符,并抛出有关字符串中无效换行符的错误。