Pergunta

Posso usar java.util.properties com codificação diferente e depois padrão?

Foi útil?

Solução

Não a menos que você

  1. estão executando o Java 6 ou mais tarde
  2. 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"/>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top