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

しかし、Ubuntuにコピーすると正しい値が表示されます。

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

だから私の質問は、aixとUbuntuシステムで正しい値を見るためにどのエンコーディングを使うべきかということです。

ベストアンサー1

環境変数を、端末の文字にUTF-8エンコーディングを使用することを示す値LC_CTYPEに設定します。en_US.UTF-8UTF-8はUnicodeのエンコーディングです。通常、これはUnixの世界の最新の文字エンコード標準であり、Ubuntuではデフォルトですが、AIXではデフォルトではない可能性があります。

最初のバージョンUTF-8ロケールをサポートするAIX7.1.2.0 です。以前のバージョンを使用している場合は、AIXでUTF-8でエンコードされたテキストを表示できないことがあります。ただし、UbuntuでSSHを介してAIXシステムにアクセスする場合は、これを設定(または設定しないままにしておく)でスタンザが文字を形成するLC_CTYPE=C方法catviless

または、文字のみを表示するには、次を使用できます。latin2(別名ISO-8859-2)文字セット。 Ubuntuの端末で次のコマンドを実行して、latin2の使用に切り替えることができます。

LC_CTYPE=cs_CZ luit

(または他のlatin2ロケールを使用してください。そのロケールが存在しない場合はgenerate itを使用してくださいsudo locale-gen cs_CZ。)

おすすめ記事