在使用sqlplus的過程中,常常會遇到某一台機器在訪問oracle數據庫時中文顯示亂碼的問題,實際上這是因為客戶端字符集和服務器字符集不一致導致的。在實際使用中,服務器字符集,客戶端字符集和操作系統字符集必須一致,或者為包含關系才能正確顯示出中文字符,這篇經驗介紹了一種通過修改客戶端字符集和操作系統字符集的方式來消除中文亂碼的方法
-
按win+R鍵調出windows運行窗口,並在窗口中輸入“cmd”以便進入命令行程序。
-
在cmd命令行下輸入“sqlplus 用戶名/密碼@服務名”來登陸數據庫,其中用戶名,密碼,服務名需要根據實際情況進行替換。登陸完成后,會發現提示語並不是中午,或者包含有亂碼,這就是我們需要解決的問題。在sqlplus中執行 select userenv('language') from dual;查看當前數據庫的字符集,為:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。我們只需要把客戶端字符集和操作系統字符集都設置成這個就行了
-
首先設置客戶端字符集,右擊我的電腦,選擇屬性。
-
在彈出的“屬性”對話框中,選擇“高級”->“環境變量”。
-
在環境變量中查找一個名為“NLS_LANG”的環境變量,如果找不到,則新建一個,把變量值賦值為:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”(需要根據實際數據庫服務器字符集進行賦值)。客戶端字符集設置成功。
-
在開始菜單中選擇“控制面板”-“區域和語言選項”,在該選項下對計算機語言進行設置。
-
在“高級”選項下,選擇“非Unicode程序的語言”為中文,同時點擊確定。點擊確定后會提示安裝字符集同時提示需要重啟計算機才能生效,重啟吧。
-
重啟完成后,再次進入sqlplus,發現中文亂碼問題解決。