Problema de codificação no sistema aix ao efetuar log usando log4j2

2

Estou usando o log4j2 para registrar mensagens no sistema aix. No log quando eu uso o comando less eu posso ver:

...|LU?N
...|NOV�K
...|ZEM�NEK

quando eu copio o mesmo arquivo no meu sistema ubunty e uso o mesmo programa, posso ver:

...|LU?N<DD>
...|NOV<C1>K
...|ZEM<C1>NEK

Portanto, há algo errado na minha configuração log4j2, então eu adiciono charset="UTF-8"

agora no sistema aix eu posso ver:

...|LUŽN<9D>
...|NOV<81>K
...|ZEM<81>NEK

mas quando eu copio para o meu Ubuntu eu posso ver os valores certos:

...|LUŽNÝ
...|NOVÁK
...|ZEMÁNEK

Então, minha pergunta é qual codificação devo usar para ver valores corretos no sistema aix e ubuntu

    
por hudi 20.08.2015 / 12:28

1 resposta

1

Defina a variável de ambiente LC_CTYPE para o valor en_US.UTF-8 para indicar que você deseja usar a codificação UTF-8 para caracteres nos terminais. UTF-8 é uma codificação de Unicode. É o padrão moderno de codificação de caracteres no mundo Unix em geral, e é o padrão no Ubuntu, mas pode não ser o padrão no AIX.

A primeira versão do AIX que suporta localidades UTF-8 é 7.1.2.0. Se você tiver uma versão mais antiga, talvez não consiga visualizar o texto codificado em UTF-8 no AIX. No entanto, se você estiver acessando a máquina AIX através do SSH a partir do Ubuntu, definir LC_CTYPE=C (ou deixá-la não definida) deverá funcionar com programas simples, como cat . Para outros programas, como vi ou less , você terá falhas no monitor, pois não sabe como vários bytes compõem um único caractere.

Como alternativa, se você quiser apenas os caracteres que mostrar, poderá usar o latin2 ou ISO-8859-2 conjunto de caracteres. No Ubuntu, em um terminal, você pode mudar para o trabalho em latin2 executando o comando

LC_CTYPE=cs_CZ luit

(Ou com qualquer outra localidade latin2. Se a localidade não existir, gere-a com sudo locale-gen cs_CZ .)

    
por 21.08.2015 / 01:25