tag - personajes internacionales en Javascript
title of page html (6)
Esto funciona como esperaba para mí:
alert("æøå");
... crea una alerta que contiene la cadena "& aelig; & oslash; & aring;" mientras
alert("æøå");
... crea una alerta con los caracteres no ascii.
Javascript es bastante utf-8 limpio y no tiende a poner obstáculos en tu camino.
¿Quizás estás poniendo esto en un servidor web que lo sirve como ISO-8859-1? Si usa Apache, en su archivo de configuración de Apache (o en .httaccess, si puede anular), debe tener una línea
AddCharset utf-8 .js
(Nota: editado para escapar del ampersands ... de lo contrario no tenía sentido).
Estoy trabajando en una aplicación web, donde transfiero datos del servidor al navegador en XML.
Como soy danés, rápidamente encuentro problemas con los personajes æøå
.
Sé que en html, uso el "æøå"
para æøå
.
sin embargo, tan pronto como los caracteres pasan a través de JavaScript, obtengo cuadros negros con "?"
en ellos cuando usas æøå
, y "æøå"
está impreso como está.
Me he asegurado de configurarlo en utf-8, pero eso no está ayudando mucho.
Idealmente, quiero que funcione con cualquier carácter especial (naturalmente).
El ejemplo que no funciona se incluye a continuación:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" charset="utf-8">
alert("æøå");
alert("æøå");
</script>
</head>
<body>
</body>
</html>
¿Qué estoy haciendo mal?
Ok, gracias a la respuesta de Grapefrukts, lo hice funcionar.
Realmente lo necesitaba para datos provenientes de un servidor MySQL. Dado que el guardado de los archivos en codificación UTF-8 solo resuelve el problema del contenido estático, creo que incluiría la solución para las cadenas de un servidor MySQL, extraído usando PHP:
utf8_encode($MyStringHere)
Obtengo "& aelig; & oslash; & aring;" para el primero y algunos caracteres basura para el siguiente. ¿Podría ser que el javascript no esté destruyendo (o mojibake ) tus letras, pero el cuadro de diálogo de alerta utiliza la fuente predeterminada del sistema y la fuente no puede mostrar las letras?
Si alguna vez no puede establecer la codificación de respuesta, puede usar /u
escape de secuencia en el literal de cadena de JavaScript para mostrar estos caracteres.
alert("/u00e6/u00f8/u00e5")
Solo especificar UTF-8 en el encabezado no es suficiente. Apuesto a que no ha guardado su archivo como UTF-8. Cualquier editor de texto razonablemente avanzado tendrá esta opción. Pruébalo y estoy seguro de que funcionará.
También puede usar String.fromCharCode()
para generar un carácter de una entidad numérica.
por ejemplo, String.fromCharCode( 8226 )
creará un carácter de viñeta.
Uso el código de esta manera con el idioma tailandés. Está bien.
$message
es mi variable de PHP.
echo("<html><head><meta charset=''utf-8''></head><body><script type=''text/javascript''>alert(''" . $message . "'');</script></body></html>");
Espero que esto pueda ayudar. Gracias.
(No puedo publicar una imagen de lo que hice porque el sistema decía "No tengo suficiente reputación", así que dejo la imagen, aquí. Http://goo.gl/9P3DtI Disculpe las molestias).
Perdón por mi débil inglés.