java.util.properties e CP1250
-
20-09-2019 - |
Pergunta
Posso usar java.util.properties com codificação diferente e depois padrão?
Solução
Não a menos que você
- estão executando o Java 6 ou mais tarde
- Controle o código carregando o arquivo Propriedades e pode usar um leitor. Ver o javadoc.
Esta é uma falha bastante irritante nas especificações. Existem várias soluções alternativas, provavelmente o ser mais simples de gerar automaticamente um arquivo .Properties compatível com capital Unicode de uma fonte apropriada de codificação (CP1250, UTF-8, qualquer que seja).
Java envia com um transcodificador chamado nativo2ascii Para fazer isso por você:
Existem alguns RFEs idosos sobre este assunto:
Outras dicas
Sim, mas então você deve ter cuidado para usar o load()
e store()
métodos que tomam um Reader
/Writer
, e construir explicitamente aqueles usando um InputStreamReader/OutputStreamWriter
com a codificação correta.
Isso pode não ser possível com bibliotecas que usam arquivos de propriedades implicitamente.
Editar: Os métodos descritos acima foram introduzidos apenas no Java 1.6 - Para versões mais antigas, você está sem sorte, como escreveu Dsadinoff.
Se o seu arquivo de propriedades estiver disponível no horário de construção, você também poderá convertê -lo em seu script de formiga usando a tarefa nativa2ascii:
<property name="javac.source.encoding" value="Cp1250"/>
<native2ascii src="${src.dir}" dest="${classes.dir}"
encoding="${javac.source.encoding}"
includes="**/*.properties"/>