Oracle 10g EM Database Control 網頁介面中文顯示亂碼(方塊字、亂碼字符),英文正常。環境:Fedora 7 + Oracle 10.1.0.2。
Oracle 10g 內建 JDK 1.4.2 / JRE 1.4.2,預設字體配置檔 font.properties 參考的中文字體在 Linux 系統中不存在或路徑錯誤,導致 Java 圖形環境無法渲染中文。
/opt/Oracle/product/10.1.0/Db_1/jdk/jre/lib
/opt/Oracle/product/10.1.0/Db_1/jre/1.4.2/lib
cd /opt/Oracle/product/10.1.0/Db_1/jdk/jre/lib
cp font.properties.zh.Turbo font.properties # 複製含中文支援的配置檔
# 同步處理 JRE 目錄
cd /opt/Oracle/product/10.1.0/Db_1/jre/1.4.2/lib
cp font.properties.zh.Turbo font.properties
編輯 font.properties,確認最後兩行指向系統實際字體目錄(Fedora 7 範例):
filename.-tlc-song-medium-r-normal--*-%d-*-*-c-*-gbk-0=/usr/share/fonts/chinese/TrueType/uming.ttf
appendedfontpath=/usr/share/fonts/chinese/TrueType/
若系統無 uming.ttf,安裝中文字體套件:yum install cjkuni-uming-fonts 或複製任意 TTF 中文字體至該目錄。
/opt/Oracle/product/10.1.0/Db_1/jdk/jre/bin/ControlPanel
# 或
/opt/Oracle/product/10.1.0/Db_1/jre/1.4.2/bin/ControlPanel
彈出的 Java 控制面板若中文正常,字體配置成功。
emctl stop dbconsole
isqlplusctl stop
# 刪除中文快取圖片目錄
rm -rf /opt/Oracle/product/10.1.0/Db_1/J2EE/oc4j_applications/applications/em/em/cabo/images/cache/zhs/
emctl start dbconsole
isqlplusctl start
瀏覽器訪問 https://host:5500/em,中文選單、報表、告警訊息均正常顯示。
ORACLE_HOME 變化,JDK 版本升級為 1.8/11,字體配置檔名可能為 fontconfig.properties.src,邏輯相同。NLS_CHARACTERSET)一致性。