首先我們要明確一點,***–任何亂碼問題的造成都是由於編碼和解碼的字符集不同導致的–***比如編碼的時候使用的GBK,解碼的時候使用的是UTF-8,那麼勢必會造成亂碼問題。關於計算機是如何進行編解碼的可以自行上網搜索文章進行學習。
所以,要想解決亂碼問題,必須要統一編解碼用到的字符集
- 查看oracle服務器端的編碼
select userenv('language') from dual;
- 查看客戶端的編碼
select * from V$NLS_PARAMETERS;
結果如下:
查看第一行中 parameter 項中爲NLS_LANGUAGE對應的value 項中是否和第一步得到的值一樣。
如果不一樣需要設置環境變量.
因爲此時PLSQL 客戶端使用的編碼和數據庫服務器端使用的編碼不一致,插入中文時就會有亂碼
-
設置環境變量
設置變量名爲 NLS_LANG,值爲第一步查詢到的數據庫服務端的字符編碼集。
如下圖:
-
重啓plsql之後,再插入數據亂碼問題就解決了。
***希望對大家有幫助,謝謝。***