java.util.Properties e Cp1250
-
20-09-2019 - |
Domanda
È possibile utilizzare java.util.Properties con codifica diversa allora default?
Soluzione
A meno che non si
- sono in esecuzione Java 6 o versioni successive
- controllare il codice di caricare il file delle proprietà, e può utilizzare un lettore. Vedere javadoc .
Questo è un difetto abbastanza fastidioso nelle specifiche. Ci sono diverse soluzioni, probabilmente il più semplice è quello di auto-generare un file .properties conformi unicode-fuggito da una (, UTF-8, qualunque sia cp1250) fonte di codifica-appropriata.
navi Java con un transcoder chiamato native2ascii per fare questo per voi:
Ci sono alcune richieste di miglioramento di età compresa su questo tema:
Altri suggerimenti
Sì, ma poi si deve stare attenti a utilizzare il load()
e metodi store()
che prendono un Reader
/ Writer
, ed esplicitamente costruiscono quelli utilizzando un InputStreamReader/OutputStreamWriter
con la codifica corretta.
Questo potrebbe non essere possibile con le librerie che utilizzano file di proprietà in modo implicito.
Modifica:. I metodi descritti in precedenza sono stati introdotti solo in Java 1.6 - per le versioni più vecchie, sei fuori di fortuna, come ha scritto dsadinoff
Se il file le proprietà è disponibile al momento della compilazione, è anche possibile convertire nel vostro script ant utilizzando l'attività native2ascii:
<property name="javac.source.encoding" value="Cp1250"/>
<native2ascii src="${src.dir}" dest="${classes.dir}"
encoding="${javac.source.encoding}"
includes="**/*.properties"/>