Question

Je travaille sur une application Web, où je transfère des données du serveur vers le navigateur en XML.

Comme je suis danois, je rencontre vite des problèmes avec les personnages æøå.

Je sais qu'en HTML, j'utilise le "æøå" pour æøå.

cependant, dès que les caractères passent par JavaScript, j'obtiens des boîtes noires avec "?" en eux lors de l'utilisation æøå, et "æøå" est imprimé tel quel.

Je me suis assuré de le régler sur utf-8, mais cela n'aide pas beaucoup.

Idéalement, je veux que cela fonctionne avec n'importe quel caractère spécial (naturellement).

L'exemple qui ne fonctionne pas est inclus ci-dessous :

<!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("&aelig;&oslash;&aring;");
            alert("æøå");

        </script>
    </head>
    <body>
    </body>
</html>

Qu'est-ce que je fais mal?


Ok, grâce à la réponse de Grapefrukts, je l'ai fait fonctionner.

En fait, j'en avais besoin pour les données provenant d'un serveur MySQL.Étant donné que l'enregistrement des fichiers en codage UTF-8 ne résout que le problème du contenu statique, je pense que j'inclurais la solution pour les chaînes d'un serveur MySQL, extraites à l'aide de PHP :

utf8_encode($MyStringHere)

Était-ce utile?

La solution

Il ne suffit pas de spécifier UTF-8 dans l'en-tête.Je parierais que vous n'avez pas enregistré votre fichier au format UTF-8.Tout éditeur de texte raisonnablement avancé aura cette option.Essayez-le et je suis sûr que cela fonctionnera !

Autres conseils

Si jamais vous ne parvenez pas à définir le codage de la réponse, vous pouvez utiliser \u séquence d'échappement dans la chaîne littérale JavaScript pour afficher ces caractères.

alert("\u00e6\u00f8\u00e5")

Vous pouvez aussi utiliser String.fromCharCode() pour afficher un caractère à partir d'une entité numérique.

par exemple. String.fromCharCode( 8226 ) créera un personnage de balle.

J'obtiens "æøå" pour le premier et quelques caractères indésirables pour le suivant.Se pourrait-il que le javascript ne soit pas mutilé (ou mojibake) vos lettres mais la boîte de dialogue d'alerte utilise la police par défaut du système et la police est incapable d'afficher les lettres ?

J'utilise le code comme celui-ci avec la langue thaïlandaise.C'est bon.

$message est ma variable PHP.

echo("<html><head><meta charset='utf-8'></head><body><script type='text/javascript'>alert('" . $message . "');</script></body></html>");

J'espère que cela pourra aider.Merci.

(Je ne peux pas publier d'image de ce que j'ai fait car le système dit "Je n'ai pas assez de réputation", donc je laisse l'image ici. http://goo.gl/9P3DtI Désolé pour le dérangement.)

Désolé pour mon anglais faible.

Cela fonctionne comme prévu pour moi :

alert("&aelig;&oslash;&aring;");

...crée une alerte contenant la chaîne "æøå" alors que

alert("æøå");

...crée une alerte avec les caractères non-ascii.

Javascript est assez propre en utf-8 et n'a pas tendance à vous gêner.

Peut-être que vous mettez cela sur un serveur Web qui le sert comme ISO-8859-1 ?Si vous utilisez Apache, dans votre fichier de configuration Apache (ou dans .httaccess, si vous pouvez remplacer), vous devriez avoir une ligne

AddCharset utf-8 .js

(Note:édité pour échapper aux esperluettes...sinon ça n'avait aucun sens.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top