Also die Sprache, die ich verwende, ist Java, mit JSP-s und Servlets versuche ich, HTML zu geben, was es drucken sollte, aber es druckt nur Fragezeichen. Meine Daten sind in MySQL. Ich habe versucht, alles in UTF-8 zu ändern, einschließlich der Zeichenkodierungen von Tomcat-, XML- und HTML-Dokumenten, JSPs und MySQL-Workbenches, aber es hat nicht geholfen. Und eine wichtige Notation - die System.out.println(...);
Funktion druckt korrekt den Text in der Konsole (wie erwartet). Bitte helfen Sie.Warum zeigt der Browser Fragezeichen aus der MySQL-Datenbank an?
Antwort
- Die Bytes im Client müssen utf8-codiert sein.
- Die Verbindung muss diese Tatsache feststellen. Für Servolets
resource.setContentType ("text/html;charset=utf-8");
. Die Tabellen/Spalten müssenCHARACTER SET utf8
(oderutf8mb4
) sein. - Die Ausgabe muss utf8 deklarieren. Für JSP:
<%@ page contentType="text/html; charset=UTF-8" %>
Für mehrere Fragezeichen liegt der übliche Fehler in der Tabellendefinition. Alternativ könnten die Quellbytes und die Verbindung fehlerhaft sein.
Um zu überprüfen, was in der Tabelle ist, geben Sie bitte die Ausgabe von dieser für einige nicht-englischen Zeichen (e):
SELECT col, HEX(col) FROM ...
Die Ausgabe der Select col. hex (col) from ... war 'D588D59ED5BE20D5A720D5A3D680D5A5D5AC203C3CD580D5A1D680D5A9D5A1D5A3D5B8D5B2D5AB20D5B3D5A1D5B4D683D5B8D680D5A4D5B6D5A5D680D5A83E3E3A' für 1 der Einträge. Was kann ich jetzt annehmen? –
Alle 4 Punkte, die Sie erwähnt haben, wurden mit einigen Unterschieden gemacht, recource.contentType() bedeutet das response.contentType()? Auch utf-8_general_ci wird in der MySQL-Workbench verwendet. –
Das sieht nach armenischen Zeichen aus utf8 aus. Die Daten werden also 'richtig' gespeichert. Also, schauen Sie sich die Ausgabeseite an. Wenn Sie hex von Java bekommen können, sehen Sie, ob es auch wie 'D5xx' aussieht. Und schauen Sie sich die HTML-Ausgabe an, um zu sehen, ob dort 'charset = UTF-8' steht, wahrscheinlich in einem' meta'-Tag in der Nähe des Anfangs. –
- 1. Warum zeigt der Browser meinen Kalender nicht an?
- 2. Warum Browser zeigt Favicon nach der Bereitstellung
- 3. Warum zeigt jQuery.fn [] in der Konsole an?
- 4. PHP-Skript zeigt nichts an, wenn der Browser ausgeführt wurde
- 5. Web-SVN-Browser, der DocX-Dateien zeigt
- 6. Fragezeichen in der Richtlinie erforderlich
- 7. Warum zeigt der Visual Studio-Editor Punkte in Leerzeichen an?
- 8. Warum zeigt es Fragezeichen auf dem Meldungsfeld anstelle von Text
- 9. Warum zeigt IE8 im HTML-Passwortfeld anstelle von Aufzählungszeichen Fragezeichen an?
- 10. Warum zeigt der Stack-Trace den Pfad meiner Entwicklungsdateien an?
- 11. Warum zeigt der JProfiler keine Socket-Aktivität an?
- 12. Warum zeigt der Angular-Datumsfilter ein falsches Datum an?
- 13. Warum zeigt mein Viewer die Ergebnisse der Methode nicht an?
- 14. Warum zeigt phpunit keine Fehler in der Konsole an?
- 15. Warum zeigt der adb-Befehl mein Gerät nicht an?
- 16. Warum zeigt es Kompilierzeitfehler an?
- 17. Browser intl.NumberFormat zeigt keine Währungssymbole korrekt an
- 18. Echo aus der Datenbank in der Kollatierung "latin1_swedish_ci" ergibt in Fragezeichen Symbole auf der Webseite
- 19. Behandle Fragezeichen als Teil der URL in der Flask-Route
- 20. Kann der Strom an den Browser
- 21. Warum zeigt Chrome einen Wert an, der bereits aus einem Array entfernt wurde?
- 22. js-hotkeys - wie an die Bindung? Fragezeichen
- 23. Was bedeutet der Fragezeichen-Operator in Ruby?
- 24. XML-Parser entfernt Nähe Verarbeitungsanweisungstrennzeichen der Fragezeichen
- 25. Warum zeigt NSNumberFormatter nicht alle Nachkommastellen an?
- 26. zeigt den eingefügten Wert in der Textansicht aus der Datenbank
- 27. Warum zeigt dieser Code keine Ausgabe an?
- 28. Warum zeigt der Unterbericht im Hauptbericht eine Zeile an, wenn der Unterbericht leer ist?
- 29. Warum der Process.GetProcessesByName ("msiexec") falsches Ergebnis zeigt?
- 30. Warum zeigt der Code einen Segmentierungsfehler?
Und der Browser verwendet auch UTF-8? – Tom
Ja ist es tatsächlich –
Ein Fragezeichen pro String? Oder viele? Zwei verschiedene Fälle. –