1. 程式人生 > >oracle服務端與客戶端字符集不同導致中文亂碼解決方案

oracle服務端與客戶端字符集不同導致中文亂碼解決方案

use 修改環境變量 描述 image nls_lang oracle服務 環境 分析 導致

1.問題描述

用pl/sql登錄時,會提示“數據庫字符集(ZHS16GBK)和客戶端字符集(2%)是不同的,字符集轉化可能會造成不可預期的後果”,具體問題是中文亂碼,如下圖

技術分享

2.問題分析

不管錯誤信息中你的數據庫字符集是什麽,都是由於數據庫服務端和你的客戶端字符集不統一造成的,所以只要將客戶端字符集改為和服務端字符集一致就能解決問題。

3.問題解決步驟

3.1查看服務端字符集

pl/sql裏查詢 select userenv(‘language‘) from dual

3.2查看客戶端字符集並修改

打開註冊表,“開始”-》“運行” 輸入‘regedit’-確定。

找到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1,找到NLS_LANG選項,雙擊,修改為“服務端字符集”。

3.3修改環境變量

如果上述步驟任然報錯(我自己是要做到第三步),修改環境變量NLS_LANG值為“服務端字符集”(如果沒有NLS_LANG請新增)

oracle服務端與客戶端字符集不同導致中文亂碼解決方案