Wie encode UTF-8-Zeichen in javascript?
Ich habe ein problem mit dem zeigen einem Wert aus der mysql-Datenbank. Also der Wert ist gespeichert als UTF-8 in mysql-Datenbank ( richtig ) , bin ich abrufen eines JSON-formatierte Daten in javascript (richtig) und dann, wenn ich drucken Sie das Ergebnis in der javascript-ich sehe nicht Recht Schildern, da bin ich mit dem kroatischen alphabet.
Habe ich diese in den head-Abschnitt:
<meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
und in dem script Abschnitt:
<script type="text/javascript" charset="utf-8">
Was kann ich als Nächstes tun?
Was server-side-view-Technologie verwenden Sie? Es muss festgelegt werden, wie
Wie meinst du das, was server-side-view-Technologie verwende ich? Ich bin immer Daten im JSON-format und es hat utf-8-Zeichen sichtbar
Ähm, setzen Sie sich einfach, was Sie verwenden, um HTML-Code erzeugt? PHP, ASP, JSP, JSF, Python, RoR, etc..? Oder ist es eine statische HTML-Datei und verwenden Sie einen HTTP-server ohne Standard-builtin support für eine view-Technologie wie Apache HTTPD?
jetzt haben Sie mich ein bisschen verwirrt. Seite in einer statischen html, aber ich bin mit javascript, wie ich eine google-maps auf. Also ich Hole Daten vom server, um zu füllen Sie die Daten in google maps. Ich habe eben versucht etwas zu schreiben in der Konsole.log() aus dem javascript im kroatischen alphabet und es funktioniert richtig, so dass problem sein könnte, wenn beim abrufen von Daten vom server. Jetzt sehe ich, dass JSON nicht, dass Sie mir den richtigen Wert. So ist es php-problem
Also, bist du mit PHP als view-Technologie? Erwähnen, (und tag), die als solche dann. Ich habe eine Antwort.
charset
Attribut des HTTP-response - Content-Type
header mehr da. Der meta-tag ignoriert, die auf HTTP-Antworten und wird zum Beispiel nur dann verwendet, wenn Sie lassen Sie Ihren webbrowser speichern Sie die HTML-Ausgabe auf die Festplatte und öffnen Sie es von der Festplatte von einem file://
URI statt einer http://
URI.Wie meinst du das, was server-side-view-Technologie verwende ich? Ich bin immer Daten im JSON-format und es hat utf-8-Zeichen sichtbar
Ähm, setzen Sie sich einfach, was Sie verwenden, um HTML-Code erzeugt? PHP, ASP, JSP, JSF, Python, RoR, etc..? Oder ist es eine statische HTML-Datei und verwenden Sie einen HTTP-server ohne Standard-builtin support für eine view-Technologie wie Apache HTTPD?
jetzt haben Sie mich ein bisschen verwirrt. Seite in einer statischen html, aber ich bin mit javascript, wie ich eine google-maps auf. Also ich Hole Daten vom server, um zu füllen Sie die Daten in google maps. Ich habe eben versucht etwas zu schreiben in der Konsole.log() aus dem javascript im kroatischen alphabet und es funktioniert richtig, so dass problem sein könnte, wenn beim abrufen von Daten vom server. Jetzt sehe ich, dass JSON nicht, dass Sie mir den richtigen Wert. So ist es php-problem
Also, bist du mit PHP als view-Technologie? Erwähnen, (und tag), die als solche dann. Ich habe eine Antwort.
InformationsquelleAutor user123_456 | 2012-06-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Zeichencodierung gesetzt werden muss, um auf die eigentliche HTTP-Antwort
Content-Type
header, nicht allein auf die meta-Tags. Der meta-tag wird ignoriert, wenn der HTML-Ausgabe wird abgerufen, indem eine HTTP-Anfrage. In der webbrowser-Entwickler-toolset, wie Sie bekommen können durch drücken der Taste F12 in Chrome/IE9/Firebug, Sie müssen in der Lage sein zu erforschen, den HTTP-Antwort-Header, wie unten:Basierend auf die Kommentare, die Sie sind offenbar mit PHP erzeugen HTML-Ausgabe an den HTTP-Antwort. Sie sollten dann mit seiner
header()
- Funktion, um die richtige Antwort-header. Fügen Sie die folgende Zeile in Ihre PHP-Skript vor jeder Charakter ist schon in die Antwort geschrieben.Siehe auch:
header("Content-type: application/json; charset=UTF-8");
und noch immer habe ich das gleiche problemDann haben Sie auch ein problem in der Art und Weise, wie Sie sind, abrufen und drucken. Finden Sie die PHP UTF-8 cheatsheet. Stellen Sie sicher, dass der Abruf von Daten aus MySQL mit UTF-8 und stellen Sie sicher, dass PHP den Druck ist es UTF-8 verwenden. Wenn Sie mit altmodischen
mysql_*
Funktionen anstelle von PDO, die Sie auch ausführen müssenSET NAMES 'utf8'
vorher.Ich habe das auch gemacht und immer noch das gleiche problem
Gut, wenn Sie absolut positiv, dass Sie mit UTF-8-durch alle Schichten, von der Datenbank an das model, den controller und die view, dann ist es anscheinend nicht richtig gespeichert als UTF-8 in der Datenbank in Erster Linie an alle. Bitte beachten Sie, dass dieses problem absolut nicht in JavaScript, wie es von Natur aus unterstützt Unicode BMP bereits. Konzentrieren sich mehr auf die MySQL/PHP-Konfiguration und den HTTP-response-handling.
InformationsquelleAutor BalusC