Frage

Wir setzen i18n JSTL mit und trat ein Problem, dass die Ressource Texte in .properties-Datei definiert und nicht ISO 8859 Zeichen (z inidic Sprachen) nicht nach Tag gemacht werden.

Nach dem Tauchen durch den Code von Tag und BundleHelper Klasse schließlich fanden wir, dass es intern verwendet ResourceBundle.getBundle Methode, die wiederum Verwendung Property die .properties-Datei als Ressourcenbündel geladen werden.

Es stützt sich intern auf java.util.Properties # load (Inputstream) Methode, die nicht Lesen von nicht ISO 8859 unterstützt das Zeichen und das einzige Werk ist um solche Zeichen in / u hex hex hex hex-Format darstellen, die ganz ist unpraktisch im Falle, wenn ganze .properties-Datei ist für Hindi Sprache!

Gibt es eine Arbeit um für diese. Ich habe versucht, XML-Format in .properties-Datei verwenden, aber es wurde nicht erkannt von Property!

Umgebung Details sind: JDK 1.5, Weblogic 9.2

War es hilfreich?

Lösung

Sind Sie absolut wurde JDK 1.5 verwenden? Wenn Sie zu 1.6 bewegen könnten, könnten Sie die load(Reader) Überlastung benutzen, die Sie die Dateien in anderen Kodierungen speichern lassen würden (zum Beispiel UTF-8). Ich bin mir nicht sicher, wie das mit Property passen würde, zugegebenermaßen.

Vergessen Sie nicht, dass auch bei ISO-8859-1-Dateien arbeiten, müssen Sie nicht dieses Format verwenden Bearbeiten die Datei. Sie können verwenden native2ascii eine Datei konvertieren aus einer anderen Codierung. Halten Sie Ihre „Quelle“ Eigenschaftsdateien als UTF-8, dann native2ascii als Teil des Builds ausgeführt werden. Zum Beispiel:

native2ascii -encoding UTF-8 Foo.properties.utf8 Foo.properties

Andere Tipps

Teilen Sie Ihre Dateien in welcher Codierung Sie mögen und führen Sie sie durch die native2ascii Werkzeug als Teil des Build-oder Bereitstellungsprozesses (die genau zu diesem Zweck mit dem JDK kommt).

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