Cada vez que uso el carácter literal \ u2028 en mi fuente de JavaScript con el tipo de contenido establecido en "text/html; charset = utf-8" obtengo un error de análisis de JavaScript.Error de análisis de Javascript en el carácter unicode ' u2028'
Ejemplo:
<!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>
Si el <meta http-equiv>
queda fuera todo funciona como se esperaba. He probado esto en Safari y Firefox, ambos exhiben el mismo problema.
¿Alguna idea sobre por qué sucede esto y cómo corregirlo correctamente (sin eliminar la codificación)?
Editar: Después de investigar un poco más, el problema específico era que el carácter del problema se devolvía usando JSONP. Esto fue luego interpretado por el navegador, que lee u2028 como una nueva línea y arroja un error sobre una línea nueva no válida en una cadena.
¿Dónde se obtiene el error de análisis? –
En línea con 'var string = '';' – klaaspieter