oracle全部的亂碼解決方案html
是否是常常看見各式各樣的亂碼,看見頭就大了,你們別怕,全部的問題都會有一個甚至不止一個的解決方案,有句名言說的好:萬法不離其蹤。網上大部分把工具的亂碼和代碼操做的亂碼混爲一談,方案看了一大堆都是一個粘貼一個的,沒有一點創新,因而今天出這篇博客。web
如下方案服務端字符集編碼是:SIMPLIFIED CHINESE_CHINA.US7ASCII 測試ok,其餘編碼的能夠參考sql
一.工具亂碼:服務器
使用PLSQL Developer查詢或者編輯的時候出現??的時候:session
緣由:客戶端機和服務器上的字符集不一致oracle
解決:app
先查詢服務端的字符集編碼,而後將客戶端的修改一直便可;工具
1.查詢服務的字符集:post
2.經過工具查看客戶端的字符集編碼:測試
打開工具:help-support info
3.設置環境變量(系統環境變量):
NLS_LANG=SIMPLIFIED CHINESE_CHINA.US7ASCII(設置的編碼必須和服務端保持一致)
若是沒有生效,建議重啓電腦!
二.查詢亂碼:
設置兩個:
1.修改環境變量:
NLS_LANG=SIMPLIFIED CHINESE_CHINA.US7ASCII(設置的編碼必須和服務端保持一致)
2.修改註冊表:(爲了保險起見,查找註冊表中的NLS_LANG全部的,避免有多個)
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1
若是沒有生效,建議重啓電腦!
三.插入亂碼:
解決中...
四.導入或導出亂碼:
暫無
五.服務端修改編碼:(此方案慎重使用)
cmd sqlplus/nolog conn/as sysdba; shutdown immediate; startup mount; alter session set sql_trace=true; alter system enable restricted session; alter system set job_queue_processes=0; alter system set aq_tm_processes=0; alter database open; alter database character set ZHS16GBK; alter database character set internal_use ZHS16GBK; alter database national character set internal ZHS16GBK;(若是報錯,能夠不用理會) shutdown immediate; startup;