從資料庫中導乙個資料的時候出現了乙個很奇怪的問題,中文亂碼。首先可以確認的一點,資料在資料庫中是以中文存在的,還有就是用toad進行連線查詢的時候也是中文。但是在伺服器端直接用sqlplus連線查詢之後,所有中文都顯示為亂碼。第一反應是字符集的問題,也嘗試用修改字符集來解決問題,最終問題還是出在系統的環境變數上。
oracle字符集的檢視和修改
解決方法:
1. export引數
$ export nls_lang="simplified chinese_china.zhs16gbk"
2.修改配置單數
修改.bash_profile中的引數,新增相關資訊
nls_lang="simplified chinese_china.zhs16gbk";
export nls_lang;
以上是在linux平台,windows平台用
c:> nls_lang="simplified chinese_china.zhs16gbk"
或者新增乙個環境變數就可以了。
3.補充一點知識:
nls_lang是linux系統的環境變數;
nls_language是資料庫的引數。
我們可以在session中修改nls_language,不能修改nls_lang。
示例:sql> alter session set nls_language= 'simplified chinese'
sql> alter session set nls_lang=american_america.zhs16gbk;
alter session set nls_lang=american_america.zhs16gbk
*error at line 1:
ora-00922: missing or invalid option
sql> col parameter format a30
sql> col value format a30
sql>select * from v$nls_parameters;
parametervalue
nls_languagesimplified chinese
nls_territorychina
nls_currency¥
nls_iso_currencychina
nls_numeric_characters.,
nls_calendargregorian
nls_date_formatyyyy-mm-dd hh24:mi:ss
nls_date_languageamerican
nls_charactersetzhs16gbk
nls_sortbinary
nls_time_formathh.mi.ssxff am
parametervalue
nls_timestamp_formatdd-mon-rr hh.mi.ssxff am
nls_time_tz_formathh.mi.ssxff am tzr
nls_timestamp_tz_formatdd-mon-rr hh.mi.ssxff am tzr
nls_dual_currency¥
nls_nchar_charactersetal16utf16
nls_compbinary
nls_length_semanticsbyte
nls_nchar_conv_excpfalse
已選擇19行。
sql>
sqlplus中文顯示亂碼的問題
在windows下sqlplus完全正常,可是到linux下,sqlplus中文顯示就出問題了,總是顯示 或是其他亂碼,這個問題又怎麼解決呢?經過在網路上查資料,以及嘗試,得到的解法如下 其實很簡單我們只要設定退出sqlplus,設定相應的環境變數nls lang export nls lang s...
CAD漢字亂碼問題
如何設定cad可以把gbcbig作為缺失字型的替換字型 怎樣在cad中快速替換缺失字型 cad支援兩種字型 解決辦法 出現選擇字型對話方塊不用管它,直接關閉。文字顯示 時,按如下操作 1 文字顯示 時,選擇有問題的文字,ctrl 1檢視文字樣式名稱記下來,2 命令style開啟文字樣式對話方塊,找到...
Qt漢字亂碼問題
1.漢字亂碼問題 例 ui editdebugchannel settext qstring 1通道 arg debug channel 顯示到視窗就會有亂碼 產生原因 qt內部是使用unicode編碼的,即qstring儲存的是unicode編碼的字串。而原始碼中的漢字字串在生成可執行檔案的過程中...