APEX4.2.4 日本語で文字化けを解消したときのメモ
APEX4.2.4インストール時に日本語対応を入れたものの、画面を開くと、日本語が「?」と化けてしまい、正しく表示されなかった。原因はDB側のキャラクタセットの問題だったので、インスタンスを再作成して解消した。以下、そのときのメモ。
以下のように日本語が文字化けしてしまう。
原因はDBのキャラクタセットがWE8MSWIN1252となっており、日本語対応のものになっていなかった。DBインスタンス作成の時点で日本語対応がされていなかったよう。
SQL> SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET'; PARAMETER -------------------------------------------------------------------------------- VALUE -------------------------------------------------------------------------------- NLS_CHARACTERSET WE8MSWIN1252
DBキャラクタセットを変更するには、インスタンス再作成が一番手っ取り早いよう。大したデータもないので、dbcaでインスタンス削除 -> 新規作成する。新規作成時にはインスタンスのキャラクタセットを以下のように設定する。
- Use Unicode (AL32UTF8)
- Natinal Character Set: AL16UTF16
- Default Language: Japanese
- Default Territory: Japan
ここで、OSユーザのNLS_LANGもJapaneseのUTF-8に設定しておく。
(.bashrcでロードするように設定)
[oracle@localhost ~]$ export NLS_LANG=Japanese_Japan.AL32UTF8
SQL*PLUSでDBに接続しキャラクタセットを確認。確かに変更されている。
SQL> SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET'; PARAMETER ---------------------------------------------------------------- VALUE ---------------------------------------------------------------- NLS_CHARACTERSET AL32UTF8 1行が選択されました。
この状態からApexをインストールを最初からやりなおし日本語対応を行うと、以下のように日本語が文字化けせず正しく表示された。
以上