首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2控制中心中文亂碼?三招徹底解決字型映射問題

     編輯:DB2 教學

問題背景:為何DB2 Control Center顯示亂碼?

DB2 Control Center(控制中心)基於Java Swing開發,其中文顯示依賴JRE字型映射檔(`font.properties.zh`)將邏輯字型名稱(如 `SansSerif`、`Dialog`)對應到實體字型檔(`.ttf` 或 `.ttc`)。當映射檔指向的字型檔不存在、副檔名錯誤,或作業系統地區設定與JRE預期不符時,介面即會出現方塊字、亂碼或缺字。

三大解決方案(按成功率排序)

方案一:修正字型映射檔副檔名(最推薦,成功率最高)

原理: Windows系統中文標準字型「新細明體」為TrueType Collection(`.ttc`)格式,但舊版DB2映射檔誤指為單一TrueType Font(`.ttf`),導致JRE找不到字型。

  1. 以系統管理員身分開啟檔案總管,定位至:
    D:\Program Files\IBM\SQLLIB\java\jdk\jre\lib\font.properties.zh
    (路徑視安裝目錄而異,關鍵在 `jre\lib\` 下)
  2. 備份原檔(建議命名為 `font.properties.zh.bak`)
  3. 使用記事本或Notepad++開啟,搜尋:
    filename.SimSun=SimSun.ttf
  4. 修改為:
    filename.SimSun=SimSun.ttc
  5. 儲存檔案,重新啟動DB2 Control Center

補充: 若系統安裝多套中文字型(如微軟正黑體 `msjh.ttc`),亦可同步修改 `filename.Microsoft_JhengHei=msjh.ttc`,提升介面美觀度。

方案二:調整Windows地區與語言設定(治本,解決系統層級不一致)

適用情境: 方案一無效,或多套Java應用程式同時出現中文顯示異常。

  1. 開啟「控制台」→「時鐘與地區」→「地區」
  2. 「格式」頁籤:格式選擇「中文(台灣)」或「中文(中國)」
  3. 「系統管理」頁籤 → 「變更系統地區設定」 → 核取「Beta版:使用Unicode UTF-8提供全球語言支援」取消勾選(此選項常導致舊版Java字型映射失效)
  4. 「目前的系統地區設定」確認為「中文(台灣)」或「中文(中國)」
  5. 重啟電腦後再啟動Control Center

原理: JRE啟動時讀取 `user.language`、`user.region`、`file.encoding` 系統屬性,決定載入哪個 `font.properties.<語系>` 檔。系統地區設定錯誤會導致載入錯誤映射檔或預設英文映射檔。

方案三:替換完整字型映射檔(終極備援)

操作: 從正常運作的同版本DB2環境(或IBM官方修補包)複製完整的 `font.properties.zh` 覆蓋現有檔案。

  1. 取得正確映射檔來源:
    - 同版本正常主機 `jre\lib\font.properties.zh`
    - IBM Fix Central 下載對應版本 `db2cc_fixpack` 解壓縮取得
  2. 停止所有DB2 Java進程(Control Center、Configuration Assistant、Command Editor等)
  3. 覆蓋目標檔案:
    copy /Y font.properties.zh "D:\Program Files\IBM\SQLLIB\java\jdk\jre\lib\"
  4. 重新啟動驗證

驗證與後續維護

  • 快速驗證: 開啟Control Center → 「檢視」→ 「字型大小」調整,觀察中文選單、表格資料是否正常渲染。
  • 防止覆蓋: DB2 Fix Pack升級可能覆蓋映射檔。建議將修正後的 `font.properties.zh` 納入部署腳本,或建立排程任務定期校驗檔案雜湊值。
  • 高版本注意: DB2 11.5+ 採用Eclipse-based Management Console(取代Swing版Control Center),亂碼問題大幅減少。若仍使用舊版CC,建議規劃遷移至Data Management Console或命令列工具(`db2`、`db2pd`、`db2top`)。

附圖:修正前後對照

DB2控制中心亂碼修正前後對照

總結

DB2 Control Center中文亂碼本質是JRE字型映射檔與實體字型檔不匹配。優先採用方案一(修正.ttc副檔名),成本最低、見效最快;輔以方案二(系統地區設定)治本;方案三(替換映射檔)作為備援。長遠規劃應逐步淘汰Swing介面工具,轉向現代化管理介面。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved