発生するVL
Solaris版V10.1.0
原因
以下の原因が考えられます。
Javaで異機種間結合を行う場合、またはデータベース接続を行う場合、「\」、「~」、「∥」、「-」、「¢」、「£」、「¬」の全角文字が原因で文字化けする可能性があります。日本語コード(JIS、EUC、およびShift-JIS)をUNICODEに変換する際の変換規則が各ベンダーによって異なります(例えば、Shift-JISとWindows-31(MS932)とで、UNICODEに対する文字コードのマッピングが異なります)。
データベースからデータを取得するときに、データベースの文字コード系が環境変数LANGの文字コード系と異なる場合は、一度、環境変数LANGの文字コード系に変換してから、データベースの文字コード系に変換します。このとき、変換先のコード系に変換元の文字が存在しない場合に、半角文字の「?」になります。
対処
原因に応じて以下の対処を行ってください。
帳票管理Javaインタフェースで解決できません。Javaのアプリケーション開発者がこの問題を避けるための自衛的手段を行う必要があります。
構築するシステム環境で使用する文字コードが特定できる場合は、それに合わせて適切な文字コード変換を行ってください。
JDK1.4.0 以前とJDK1.4.1 以降では、Shift-JIS のエイリアスが異なるため、Javaアプリケーションで文字コード変換を行う場合の文字コード指定には注意が必要です。同じShift-JISを指定しても、JDKのバージョンによって使われる文字コンバーターが異なるため、適切な文字コードを指定しないと「\」、「~」、「∥」、「-」、「¢」、「£」、「¬」の全角文字が文字化けします。
バージョン | エイリアス |
---|---|
JDK1.2~JDK1.4.0 | Windows-31J |
JDK1.4.1 以降 | SJIS |
データベースの文字コード系と環境変数LANGの文字コード系を同じにしてください。