Frage

Kann ich java.util.Properties mit kodieren, anders als default?

War es hilfreich?

Lösung

Nicht, wenn Sie

  1. laufen Java 6 oder höher
  2. steuern den Code, um die Eigenschaftsdatei laden, und einen Reader verwenden können. Siehe javadoc .

Dies ist ein ziemlich ärgerlichen Fehler in der Spezifikation. Es gibt mehrere Abhilfen, wahrscheinlich die einfachste Wesen automatisch generiert eine Unicode-escaped konformen .properties-Datei aus einer Codierung entsprechendem (CP1250, utf-8, was auch immer) Quelle.

Java Schiffe mit einem Transcoder genannt native2ascii tun dies für Sie:

Es gibt einig im Alter von RFEs zu diesem Thema:

Andere Tipps

Ja, aber dann muss man vorsichtig sein, die load() und store() Methoden, die ein Reader / Writer nehmen und die explizit konstruieren, indem ein InputStreamReader/OutputStreamWriter mit der richtigen Codierung.

Dies kann nicht möglich sein, mit Bibliotheken, die Gebrauchseigenschaften von Dateien implizit.

Edit:. Die oben genannten Methoden nur in Java 1.6 eingeführt wurden beschrieben - für ältere Versionen, sind Sie kein Glück, als dsadinoff schrieb

Wenn Sie Ihre Eigenschaften Datei zur Buildzeit zur Verfügung steht, können Sie es auch in Ihrem Ant-Skript konvertieren die native2ascii Aufgabe mit:

<property name="javac.source.encoding" value="Cp1250"/>

<native2ascii src="${src.dir}" dest="${classes.dir}"
   encoding="${javac.source.encoding}"
   includes="**/*.properties"/>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top