Como adicionar CP-1252 ao CentOS

Como adicionar CP-1252 ao CentOS

Estamos processando arquivos que nossos clientes geraram em suas máquinas Windows locais que usam o conjunto de caracteres CP-1252. Ocasionalmente, ao processar um desses arquivos em nosso backend (executando no CentOS), obtemos erros de tempo de execução (é um backend Java, portanto RuntimeExceptions). Se acessarmos remotamente o servidor, renomearmos o arquivo (usando UTF-8) e executá-lo novamente, o arquivo será processado perfeitamente.

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

Responder1

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

Nas versões do JDK anteriores à 1.4, sempre forçamos o código do idioma "C" para o conjunto de caracteres ISO8859-1. Nas versões 1.4 e posteriores, oferecemos suporte ao código de idioma "C", que requer restrição para ASCII de 7 bits.

A recomendação é definir a variável de ambiente LC_ALLcomo en_US.ISO8859-1ou qualquer que seja o local apropriado para o sistema es_ES.ISO-8859-1, etc.

Adicionando:

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

O arquivo de comando que executa seu back-end Java deve resolver o problema.

Isso também está documentado na pergunta SO:https://stackoverflow.com/questions/5663709/how-to-fix-java-when-if-refused-to-open-a-file-with-special-charater-in-filename

informação relacionada