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

PL/SQL Developer 中文亂碼徹底解決:NLS_LANG 環境變數設定指南

     編輯:Oracle 教學

PL/SQL Developer 中文亂碼徹底解決:NLS_LANG 環境變數設定指南

PL/SQL Developer 查詢結果中文顯示亂碼,核心原因是客戶端字元集與資料庫不匹配。透過設定 NLS_LANG 環境變數即可徹底解決。

快速解決步驟

  1. Windows 搜尋「編輯系統環境變數」
  2. 點擊「環境變數」→「系統變數」區→「新增」
  3. 變數名:NLS_LANG
  4. 變數值(視資料庫字元集而定):
    • 簡體中文資料庫(ZHS16GBK):SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    • 繁體中文資料庫(ZHT16BIG5):TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5
    • UTF-8 資料庫(AL32UTF8):AMERICAN_AMERICA.AL32UTF8
  5. 確定存檔,**重新啟動 PL/SQL Developer** 生效

驗證是否生效

-- 在 PL/SQL Developer 執行
SELECT USERENV('LANGUAGE') FROM DUAL;
-- 應回傳剛設定的值,如 SIMPLIFIED CHINESE_CHINA.ZHS16GBK

原理解析

  • Oracle Client 依 NLS_LANG 決定客戶端字元集
  • 格式:語言_地區.字元集
  • 資料庫伺服器端字元集由 NLS_DATABASE_PARAMETERS 決定
  • 傳輸時雙端自動轉碼,NLS_LANG 錯誤會導致轉碼失敗產生亂碼

常見字元集對照表

資料庫字元集建議 NLS_LANG 值
ZHS16GBKSIMPLIFIED CHINESE_CHINA.ZHS16GBK
ZHT16BIG5TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5
AL32UTF8AMERICAN_AMERICA.AL32UTF8
UTF8AMERICAN_AMERICA.UTF8
US7ASCIISIMPLIFIED CHINESE_CHINA.ZHS16GBK (需配合應用層轉碼)

進階:不同專案需不同字元集

若同機器連接不同字元集資料庫,可建立批次檔啟動 PL/SQL Developer:

@echo off
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
start "" "C:\Program Files\PLSQL Developer\plsqldev.exe"

注意事項

  • 修改環境變數後**必須重啟 PL/SQL Developer**,重新開啟查詢視窗不夠
  • 若使用 Oracle Instant Client,同樣需設定此變數
  • 註冊表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_... 下同樣有 NLS_LANG,環境變數優先級較高
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved