sqlplus 漢字亂碼問題的解決

2021-08-26 06:13:28 字數 1753 閱讀 5248

從資料庫中導乙個資料的時候出現了乙個很奇怪的問題,中文亂碼。首先可以確認的一點,資料在資料庫中是以中文存在的,還有就是用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編碼的字串。而原始碼中的漢字字串在生成可執行檔案的過程中...