Всякий раз, когда я использую литерал символа \u2028 в моем источнике javascript с типом содержимого, установленным в "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 как новую строку и выдает ошибку о недопустимой новой строке в строке.