Pergunta

Estamos implementando i18n usando JSTL e encontrou uma questão que os textos de recursos definidos no arquivo .properties e ter não ISO 8859 caracteres (idiomas por exemplo inidic) não pode ser processado por tag.

Após o mergulho através do código de tag e classe BundleHelper em última análise, descobrimos que ele usa internamente método ResourceBundle.getBundle que por sua vez o uso PropertyResourceBundle para carregar o arquivo .properties como pacote de recursos.

Ele se baseia internamente java.util.Properties # carga (InputStream) método que não suportam a leitura de não ISO 8859 caracteres e a única solução é para representar esses personagens em / u hex formato hexadecimal hex hex, que é bastante impraticável no caso, se arquivo .properties todo é para a língua Hindi!

Existe alguma solução para este. Eu tentei usar o formato XML no arquivo .properties mas não foi reconhecido por PropertyResourceBundle!

detalhes do ambiente são: JDK 1.5, Weblogic 9.2

Foi útil?

Solução

Você absolutamente Have para usar o JDK 1.5? Se você pode mover-se para 1,6, você poderia usar a sobrecarga load(Reader) que permitem armazenar os arquivos em outras codificações (por exemplo, UTF-8). Não tenho certeza como isso se encaixa com PropertyResourceBundle, reconhecidamente.

Não se esqueça que, mesmo trabalhando com ISO-8859-1 arquivos, você não tem que usar esse formato para editar do arquivo. Você pode usar native2ascii para converter um arquivo a partir de uma codificação diferente. Mantenha seus arquivos de propriedade "fonte" como UTF-8, em seguida, executar native2ascii como parte de sua construção. Por exemplo:

native2ascii -encoding UTF-8 Foo.properties.utf8 Foo.properties

Outras dicas

Escrever seus arquivos em qualquer codificação que você gosta e executá-los através do native2ascii ferramenta (que vem com o JDK exatamente para este fim) como parte da compilação ou processo de implantação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top