Domanda

È possibile utilizzare java.util.Properties con codifica diversa allora default?

È stato utile?

Soluzione

A meno che non si

  1. sono in esecuzione Java 6 o versioni successive
  2. 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"/>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top