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

解決 PL/SQL Developer 字元集不匹配:AL32UTF8 與 ZHS16GBK

     編輯:關於SqlServer

啟動 PL/SQL Developer 時彈出警告:「PL/SQL database character set (AL32UTF8) and Client character set (ZHS16GBK) are different」,導致中文顯示亂碼或無法正確寫入。根因在於 Oracle Client 註冊表設定的 NLS_LANG 與資料庫字元集不一致。

快速修正步驟

  1. 執行 regedit 開啟登錄編輯器。
  2. 定位路徑:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OracleXXXXXX(XXXXXX 視安裝版本而定)。
  3. 找到字串值 NLS_LANG,預設為 SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
  4. 修改為 SIMPLIFIED CHINESE_CHINA.AL32UTF8。
  5. 重新啟動 PL/SQL Developer 即可生效。

原理解析

  • AL32UTF8:Oracle 資料庫採用的 Unicode 字元集(UTF-8),支援全語系。
  • ZHS16GBK:簡體中文 Windows 預設代碼頁,僅支援中文常用字。
  • Client 字元集必須與 Database 字元集一致,Oracle 才會跳過轉換層,避免資料截斷或亂碼。

補充提醒

  • 若有多個 Oracle Home,請確認修改正確的 KEY 路徑(通常對應 ORACLE_HOME 環境變數指向的 Home)。
  • 修改後會影響所有使用該 Oracle Client 的應用程式(如 SQL*Plus、ODBC、OLE DB),請確認相容性。
  • 若資料庫實際字元集非 AL32UTF8(可用 SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET' 查詢),請依實際值調整 NLS_LANG。

此設定屬於 Client 端環境變數,不需重裝軟體,即時生效,為解決 PL/SQL Developer 中文亂碼最常用方案。

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