客戶端字符集
檢視資料庫伺服器端字符集方式
修改資料庫字符集
在建立資料庫時,可以指定字符集(character set)和國家字符集(national character set)。
1、字符集
(1)用來儲存char, varchar2, clob, long等型別資料;
(2)用來標示諸如表名、列名以及pl/sql變數等;
(3)用來儲存sql和pl/sql程式單元等;
2、國家字符集
(1)用以儲存nchar, nvarchar2, nclob等型別資料;
(2)國家字符集實質上是為oracle選擇的附加字符集,主要作用是為了增強oracle的字元處理能力,因為nchar資料型別可以提供對亞洲使用定長多位元組編碼的支援,而資料庫字符集則不能。國家字符集在oracle9i中進行了重新定義,只能在unicode編碼中的af16utf16和utf8中選擇,預設值是af16utf16
simplified chinese_china.zhs16gbk :乙個漢字占用兩個位元組
simplified chinese_china.al32utf8: 乙個漢字占用三個位元組
可使用如下語句檢視:
select lengthb(『你』) from dual;
客戶端字符集定義了客戶端字元資料的編碼方式,任何發自或發往客戶端的字元資料均使用客戶端定義的字符集編碼,客戶端可以看作是能與資料庫直接連線的各種應用,例如sqlplus,exp/imp,pl/sql developer等。客戶端字符集是通過設定nls_lang引數來設定的。
1、備份資料庫:防止修改字符集導致資料錯亂,無法恢復
2、使用管理員使用者登入資料庫
sqlplus sys as sysdba
3、由於要改動資料庫基礎配置,因而需先關閉資料庫
shutdown immediate;
4、裝載資料庫,開啟控制檔案
startup mount;
5、更改配置並啟動資料庫
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;
6、更改字符集
1)gbk改為utf-8
alter database character set al32utf8;
2)utf-8改為gbk
sql> alter database character setzhs16gbk;
第1行出現錯誤:
ora-12712: new character set must be a superset of old characterset
提示我們的字符集:新字符集必須為舊字符集的超集,這時我們可以跳過超集的檢查做更改:
sql> alter database character set internal_use zhs16gbk;
(internal_use可使oracle資料庫繞過子集與超集的校驗.)
7、恢復引數
alter session set sql_trace=false;
8、重啟資料庫
shutdown immediate;
startup;
9、檢視伺服器端字符集
select parameter, value from v$nls_parameters where parameter like 『%characterset』;
MySQL(九) 字符集
編碼 字元 二進位制 解碼 二進位制 字元 為什麼會出現亂碼?因為編碼和解碼的規則不同。本質上都是同樣的一串二進位製流,按照不同的規則解讀的結果當然是不同的。模擬一下我們的時間戳轉時間的場景,時間戳就好比是二進位制,時區就好比是不同的字符集,同乙個時間戳用不同的時區轉換,得到的結果當然是不同的。所以...
MySQL學習20 字符集
字符集 描述ascii 最簡單的西文編碼方案,主要用於顯示現代英語和其他西歐語言 使用1個位元組表示,可表示128個字元。gb2312 國家標準簡體中文字符集,相容ascii 使用2個位元組表示,能表示7445個符號,包括6763個漢字,幾乎覆蓋所有高頻率漢字。gbkgb2312的擴充套件,加入對繁...
05(字元 字元編碼 字符集)
一 字元 各種文字和符號的總稱。二 字元編碼 即計算機對各種字元,在計算機中的一種二進位制儲存代號 三 字符集 即多個字元的集合,同一字元在不同字符集中的二進位制儲存代號是不同的。四 常用設定 1 修改字符集 set names 字符集 2 檢視系統字符集設定 show variables like...