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

DB2 三層字符集配置全解析:OS Locale、DB2CODEPAGE、DATABASE CODESET

     編輯:DB2 教學

三層級別、兩可改、一落地

DB2 字符集配置分三層,修改權限遞減:

層級參數/設置作用範圍可否修改
系統級OS Locale (LANG/區域選項)應用程序默認代碼頁✅ 可修改
實例級DB2CODEPAGEDB2 應用代碼頁判定與轉換✅ 可修改
數據庫級DATABASE CODESET / TERRITORY數據庫存儲編碼、排序規則❌ 建庫時固化,不可變

逐層配置指南

1. 系統級:OS Locale

  • Linux/UNIX: export LANG=zh_CN.UTF-8 (寫入 /etc/profile 或用戶 .bash_profile 永久生效)。
  • Windows: 控制面板 → 區域選項 → 管理 → 更改系統區域設置 → 選擇「中文(簡體/繁體)」。

2. 實例級:DB2CODEPAGE

實例擁有者下執行:

db2set DB2CODEPAGE=1386  # 1386 = GBK/CP936; 1208 = UTF-8
db2stop && db2start       # 必須重啟實例生效

注意: 僅影響該實例下新建連接的代碼頁判定,不改變已有數據庫存儲編碼。

3. 數據庫級:建庫時指定 CODESET & TERRITORY

db2 "CREATE DATABASE mydb USING CODESET UTF-8 TERRITORY CN"
  • CODESET UTF-8 (或 1208):存儲編碼為 Unicode,支援全字符集,推薦新建庫首選。
  • TERRITORY CN:區域設置為中國,決定日期/貨幣/排序規則。

鐵律: 數據庫建立後 無法修改 CODESET/TERRITORY,規劃階段務必確認。

常見亂碼根因排查

  1. 應用讀寫編碼 ≠ DB2CODEPAGE ≠ 數據庫 CODESET → 隱式轉換出錯。
  2. JDBC 應用建議顯式指定 charSet=UTF-8 連接屬性,繞過環境變量不確定性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved