Linux 下 Apache2 連接 Oracle 無法正確顯示 Unicode 字元的問題

Oracle 的 Client 在 Linux 下面必須讀取一些 shell 的環境變數才能正確連線,包括資料庫的字元編碼也需要要設定。

方法是在自己(執行者)的 shell 下面多增加一組環境變數 export NLS_LANG="american_america.UTF8" (假設資料是用 UTF8 儲存)。

若是 Web 去連接 Oracle 的話,則是修改 HTTP Server 的環境變數。以 Apache2 來說,執行期間的環境變數可以在 /etc/apache2/envvars 這邊找到,把上面的環境變數加到檔案內即可。完成之後記得重新啟動 Apache2 。

同樣地,時間的格式也可以透過同樣方法設定:

export NLS_DATE_FORMAT="YYYY/MM/DD HH24:MI:SS"
export NLS_TIMESTAMP_TZ_FORMAT="YYYY/MM/DD HH24:MI:SS"

備註:我目前環境是 Ubuntu 9.10 x86_64 (Debian 5.0.4 設定也相同)。

Posted in DB

Leave a Reply

Your email address will not be published.