解決Oracle表中資料亂碼的問題

2021-09-27 04:14:01 字數 1883 閱讀 9038

plsql中文顯示亂碼,可能是oracle客戶端和伺服器端的編碼方式不一樣。網上有很多帖子介紹解決方法,但都說得不清不楚的,這裡我將自己經過實踐和理解的真正的解決方案分享一下。

在這裡,我使用的是本機的oracle,按照以下兩個步驟進行:首先要查詢oracle伺服器的語言、地域和字符集,然後將查詢結果設定為本地的環境變數:nls_lang。具體如下:

1. 查詢oracle伺服器的語言、地域和字符集

select * from nls_database_parameters;

查詢結果如下圖,

下圖nls_language 表示「語言」,nls_territory  表示「地域」,nls_charactset 表示「字符集」,將他們三個按照「語言_地域.字符集」的格式拼接起來,就有了「american_america.zhs16gbk」(注意:這裡要根據你自己的oracle伺服器的這三個值進行拼接哦~不要簡單的複製貼上)

2.設定本地環境變數:nls_lang,

進入 我的電腦,屬性,高階,環境變數,新增1項:

nls_lang="american_america.zhs16gbk"

(注意:這裡要根據你的oracle伺服器的這三個值進行拼接~不要複製貼上)

ok,重新開啟plsql dev  ,中文顯示正常拉!!! **注意的是,如果此時檢視表還未正常顯示,解決辦法是:刪除表,重新建立,再新增內容**(之前一直不知道,以為改了環境變數就行了,折騰了很久)zh~~

還有一點需要注意的是:網上很多方案說要修改本地登錄檔中的「hkey_local_machine->software->oracle->key_oraclient11g_home1」項,其實這是不對的,這已登錄檔項是本地oracle的字符集,跟你要訪問的伺服器oracle沒有關係的。

plsql中文顯示亂碼,可能是oracle客戶端和伺服器端的編碼方式不一樣。網上有很多帖子介紹解決方法,但都說得不清不楚的,這裡我將自己經過實踐和理解的真正的解決方案分享一下。

在這裡,我使用的是本機的oracle,按照以下兩個步驟進行:首先要查詢oracle伺服器的語言、地域和字符集,然後將查詢結果設定為本地的環境變數:nls_lang。具體如下:

1. 查詢oracle伺服器的語言、地域和字符集

select * from nls_database_parameters;

查詢結果如下圖,

下圖nls_language 表示「語言」,nls_territory  表示「地域」,nls_charactset 表示「字符集」,將他們三個按照「語言_地域.字符集」的格式拼接起來,就有了「american_america.zhs16gbk」(注意:這裡要根據你自己的oracle伺服器的這三個值進行拼接哦~不要簡單的複製貼上)

2.設定本地環境變數:nls_lang,

進入 我的電腦,屬性,高階,環境變數,新增1項:

nls_lang="american_america.zhs16gbk"

(注意:這裡要根據你的oracle伺服器的這三個值進行拼接~不要複製貼上)

ok,重新開啟plsql dev  ,中文顯示正常拉!!! **注意的是,如果此時檢視表還未正常顯示,解決辦法是:刪除表,重新建立,再新增內容**(之前一直不知道,以為改了環境變數就行了,折騰了很久)zh~~

還有一點需要注意的是:網上很多方案說要修改本地登錄檔中的「hkey_local_machine->software->oracle->key_oraclient11g_home1」項,其實這是不對的,這已登錄檔項是本地oracle的字符集,跟你要訪問的伺服器oracle沒有關係的。

Oracle中的亂碼解決

之前在linux上安裝oracle,在安裝時沒有選擇字符集,在後來向其中插入中文資料時,就會出現亂碼。查詢oracle的字符集 修改字符集 這個不是很常用,特此記一下。查詢oracle的字符集 we8iso8859p1 預設 select userenv language from dual 方法一...

oracle亂碼解決

fyi 由於歷史的原因,早期的oracle沒有中文字符集 如oracle6 oracle7 oracle7.1 但有的使用者從那時起就使用資料庫了,並用us7ascii字符集儲存了中文,或是有的使用者在建立資料庫時,不考慮清楚,隨意選擇乙個預設的字符集,如we8iso8859p1或us7ascii,...

解決表中插入資料中文亂碼的問題

臨時解決方 set names gbk 相當於是高速mysql伺服器軟體,在當前命令列下輸入的內容是gbk編碼,當命令視窗關閉之後,再輸入中文就會存在問題.永久解決方法 修改my.ini配置檔案,在mysql的安裝路徑中 1.暫停mysql服務 2.在你的mysql的安裝目錄下找到my.ini 3....