UTF-8 text (Hindi) nicht immer angezeigt, auf Browser-Fenster oder Eclipse-Konsole
Habe ich zum anzeigen von text in Hindi (oder einer regionalen Sprache) auf der browser-Bildschirme. Ich werde immer diesen text aus der Datenbank.
Dafür habe ich begonnen, auf einer sehr grundlegenden Ebene mit den folgenden:
String escapedStr = "\\u0905\\u092d\\u0940 \\u0938\\u092e\\u092f \\u0939\\u0948 \\u091c\\u0928\\u0924\\u093e";
String hindiText = StringEscapeUtils.unescapeJava(escapedStr);
System.out.println(hindiText);
return hindiText;
Ich bin in der Lage, um die Hindi-text völlig in Ordnung, in der die variable hindiText
.
Aber wenn ich drucken Sie es auf eclipse-Konsole oder auf dem browser-Bildschirm bekomme ich nur ???? ?? ??
Ich die Standard-Zeichenkodierung von meinem browser als auch mein eclipse-Konsole auf UNICODE(UTF-8). Aber immer noch kein Erfolg.
Kann mir jemand helfen, dieses Problem lösen? Welche Einstellung übersehe ich?
Nur zur info - ich bin in der Lage zu öffnen, hindi Webseiten in meinem browser. So Spracheinstellungen ist kein Problem.
BEARBEITEN
So, ich bin mit JSP-Dateien für meine Ansichten, ich habe Folgendes zu meiner web.xml
für die Einstellung der Zeichencodierung weltweit. Ref: Gefolgt wird dies
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
Aber immer noch kein Erfolg!
???? ?? ??
sowohl mit der wörtlichen und der Datenbank, dann kann man wohl die Regel aus der Datenbank. Ausgehend von der Tatsache, dass Sie immer einen ASCII-Fragezeichen pro Zeichen außerhalb gemeinsamer Standard-Zeichensätze, es gibt wahrscheinlich auch einige, die Konfiguration, die Sie vermissen.ja bin nicht besorgt über die Datenbank für jetzt. Wie bereits in dem code, ich gehe davon aus, dass Sie eine hart codierte Strings (die ich bekomme aus der DB) und wandelt es in eine Zeichenfolge, die ich kann, auf dem Bildschirm angezeigt. Ich bin auch zu überprüfen, welche config ich verpasst haben.
InformationsquelleAutor DarkKnightFan | 2013-02-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als zu Eclipse Teil, müssen Sie mitteilen, dass UTF-8 für seine stdout Konsole. Sie können einstellen, dass durch Fenster - > Einstellungen > allgemein > Arbeitsbereich > " Text File Encoding.
Als die JSP-Teil, müssen Sie mitteilen, dass UTF-8 zu schreiben, HTTP-response-body. Sie können einstellen, dass entweder
in jeder einzelnen JSP oder anwendungsweite von
in
web.xml
.Siehe auch:
wie gesagt, es wirkt sich auch auf die Kodierung von stdout (die Standardausgabe ist, wo
System.out
Punkte).Ich habe versucht, die oben genannten Schritte im Falle der eclispse und JSP beide. Aber ich bin noch immer die gleiche Ausgabe auf beiden. Bin ich hier etwas fehlt?
Funktioniert gut für mich. Was ist, wenn Sie
String hindiText = "अभी समय है जनता"; System.out.println(hindiText);
?InformationsquelleAutor BalusC
Das problem ist, dass die output-streams, die Sie verwenden, wahrscheinlich haben die "Standard" encoding deiner Plattform. Unter windows ist dies oft etwas beschissen MS 8-bit-code-Seite.
Machen Sie es eine Gewohnheit zu drucken Ihren text durch PrintWriters, und stellen Sie sicher, dass Sie erstellt werden, mit der richtigen Codierung.
InformationsquelleAutor Ingo
verwenden Sie Ihren code auf diese Weise
Noch @scofield hat einen Punkt, keine Notwendigkeit zu verwenden StringEscapeUtils.
stimmt, aber es ist immer noch effektiv das gleiche Programm (also kann es nicht lösen, nichts), daher muss es mit einem Kommentar oder gelöscht
InformationsquelleAutor scofield