log4j2를 사용하여 로그인할 때 aix 시스템에서 인코딩 문제

log4j2를 사용하여 로그인할 때 aix 시스템에서 인코딩 문제

저는 aix 시스템에 메시지를 기록하기 위해 log4j2를 사용하고 있습니다. 명령을 사용하면 로그에서 다음을 less볼 수 있습니다.

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

내 ubunty 시스템에서 동일한 파일을 복사하고 동일한 프로그램을 사용하면 다음을 볼 수 있습니다.

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

그래서 내 log4j2 구성에 문제가 있어서 charset="UTF-8"을 추가했습니다.

이제 aix 시스템에서 다음을 볼 수 있습니다.

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

하지만 우분투에 복사하면 올바른 값을 볼 수 있습니다.

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

그래서 내 질문은 aix 및 우분투 시스템에서 올바른 값을 보려면 어떤 인코딩을 사용해야 하는가입니다.

답변1

환경 변수를 터미널의 문자에 대해 UTF-8 인코딩을 사용함을 나타내는 값 LC_CTYPE으로 설정하십시오. en_US.UTF-8UTF-8은 유니코드의 인코딩입니다. 일반적으로 이것은 Unix 세계의 최신 문자 인코딩 표준이며 Ubuntu에서는 기본값이지만 AIX에서는 기본값이 아닐 수도 있습니다.

첫 번째 버전UTF-8 로케일을 지원하는 AIX7.1.2.0 입니다. 이전 버전을 사용하는 경우 AIX에서 UTF-8로 인코딩된 텍스트를 보지 못할 수도 있습니다. 그러나 Ubuntu에서 SSH를 통해 AIX 시스템에 액세스하는 경우 이를 설정 (또는 설정하지 않은 채로 놔두기) 하면 스탠자가 문자를 형성하는 방법 LC_CTYPE=C간단한 프로그램에서 작동cat같은viless

또는 문자만 표시하려면 다음을 사용할 수 있습니다.latin2(일명 ISO-8859-2)문자 집합. Ubuntu의 터미널에서 다음 명령을 실행하여 latin2 사용으로 전환할 수 있습니다.

LC_CTYPE=cs_CZ luit

(또는 다른 latin2 로케일을 사용하십시오. 해당 로케일이 존재하지 않으면 generate it 을 사용하십시오 sudo locale-gen cs_CZ.)

관련 정보