Frage

Ich arbeite an einer Web-Anwendung, wo ich Daten vom Server an den Browser in XML übertragen.

Da ich dänisch bin, laufe ich schnell Probleme mit dem Zeichen æøå.

Ich weiß, dass in html, ich die "æøå" für æøå verwenden.

jedoch, sobald die Zeichen durch JavaScript passieren, ich schwarze Kästen mit "?" in ihnen, wenn æøå verwenden und "æøå" wird gedruckt, wie ist.

Ich habe dafür gesorgt, es utf-8 zu setzen, aber das hilft nicht viel.

Im Idealfall, ich will es mit allen möglichen Sonderzeichen arbeiten (natürlich).

Das Beispiel, das nicht enthalten ist unten funktioniert:

<!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>

Was mache ich falsch?


Ok, dank Grapefrukts Antwort, ich habe es funktioniert.

Ich brauchte es eigentlich für Daten von einem MySQL-Server kommen. Da die Speicherung der Dateien in UTF-8-Codierung nur das Problem für statische Inhalte löst, Ich denke, ich die Lösung für Strings von einem MySQL-Server umfassen würde, zog mit PHP:

utf8_encode($MyStringHere)

War es hilfreich?

Lösung

Just Angabe UTF-8 in der Kopfzeile ist nicht genug. Ich wette, Sie haben nicht Ihre Datei als UTF-8 gespeichert. Jeder einigermaßen erweiterte Text-Editor wird über diese Option. Versuchen Sie, und ich bin sicher, es wird funktionieren!

Andere Tipps

Wenn Sie jemals nicht die Antwort Codierung einstellen können, können Sie \u Escape-Sequenz in der JavaScript-String-Literal verwenden, um diese Zeichen angezeigt werden soll.

alert("\u00e6\u00f8\u00e5")

Sie können auch String.fromCharCode() zur Ausgabe eines Zeichens aus einer numerischen Einheit verwenden.

z. String.fromCharCode( 8226 ) wird ein Aufzählungszeichen erstellen.

I get "&aelig;&oslash;&aring;" for the first one and some junk characters for the next. Could it be that the javascript is not mangling (or mojibake) your letters but the alert dialog uses the system default font, and the font is incapable of displaying the letters?

I use the code like this with Thai language. It's fine.

$message is my PHP variable.

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

Hope this can help. Thank you.

(I cannot post image of what I did as the system said "I don't have enough reputation", so I leave the image, here. http://goo.gl/9P3DtI Sorry for inconvenience.)

Sorry for my weak English.

This works as expected for me:

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

... creates an alert containing the string "&aelig;&oslash;&aring;" whereas

alert("æøå");

... creates an alert with the non-ascii characters.

Javascript is pretty utf-8 clean and doesn't tend to put obstacles in your way.

Maybe you're putting this on a web server that serves it as ISO-8859-1? If you use Apache, in your Apache config file (or in .httaccess, if you can override), you should have a line

AddCharset utf-8 .js

(Note: edited to escape the ampersands... otherwise it didn't make sense.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top