カタカタブログ

SIerで働くITエンジニアがカタカタした記録を残す技術ブログ。Java, Oracle Database, Linuxが中心です。たまに数学やデータ分析なども。

APEX4.2.4 日本語で文字化けを解消したときのメモ

APEX4.2.4インストール時に日本語対応を入れたものの、画面を開くと、日本語が「?」と化けてしまい、正しく表示されなかった。原因はDB側のキャラクタセットの問題だったので、インスタンスを再作成して解消した。以下、そのときのメモ。

以下のように日本語が文字化けしてしまう。
f:id:osn_th:20140908075830p:plain

原因は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: Japanf:id:osn_th:20140908075834p:plain

ここで、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をインストールを最初からやりなおし日本語対応を行うと、以下のように日本語が文字化けせず正しく表示された。


f:id:osn_th:20140908075837p:plain

以上