Como adicionar o CP-1252 ao CentOS

0

Estamos processando arquivos que nossos clientes geraram em suas máquinas Windows locais que usam o conjunto de caracteres CP-1252. Ocasionalmente, durante o processamento de um desses arquivos em nosso backend (em execução no CentOS), obtemos erros de tempo de execução (é um backend Java, portanto, RuntimeExceptions ). Se nós nos conectarmos remotamente ao servidor e renomear o arquivo (usando UTF-8) e executá-lo novamente, o arquivo processa perfeitamente.

Existe alguma maneira de "adicionar" o CP-1252 aos conjuntos de caracteres disponíveis do CentOS para que isso pare de acontecer?

    
por pnongrata 20.08.2012 / 22:53

1 resposta

1

Confira este relatório de bug da Oracle sobre o comportamento do Java bug_id = 4733494 relacionado a a "localidade padrão". De acordo com este relatório de bug (na verdade, a Sun / Oracle diz que este comportamento não é realmente um bug, mas apenas como o Java foi projetado), da Sun / Oracle:

In versions of the JDK prior to 1.4, we always forced the "C" locale to the ISO8859-1 character set. In releases 1.4 and later, we support the "C" locale which requires restriction to 7-bit ASCII.

A recomendação é definir a variável de ambiente LC_ALL para en_US.ISO8859-1 ou qualquer que seja a localidade apropriada para o sistema deve ser es_ES.ISO-8859-1 , etc.

Adicionando:

export LC_ALL="en_US.ISO-8859-1"

Para o arquivo de comando que executa seu back-end Java, resolva o problema.

Isso também está documentado na pergunta SO: link

    
por 21.08.2012 / 03:33