[Oracle] 徹底搞懂Oracle字符集建站知識
導讀:1建站知識以下是對Oracle中的字符集進行了詳細的分析介紹,需要的朋友可以參考下建設網站網站seo優化培訓。
基本概念字符集(Character set):是一個系統支持的所有抽象字符的集合。字符是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等。常見的字符集有ASCII,ZHS16GB231280,ZHS16GBK等。字符編碼(Character Encoding):是一套法則,使用該法則能夠對自然語言的字符的一個集合(如字母表或音節表),與其它的一個集合(如電腦編碼)進行配對。即在符號集合與數字系統之間建立對應關系。與字符集相對應,常見的字符編碼有:ASCii,ZHS16GBK,ZHT16BIG5,ZHS32GB18030等。字符集的定義其實就是字符的集合,而字符編碼則是指怎么將這些字符變成字節用于保存、讀取和傳輸。萬國碼(Unicode):包含了幾乎人類所有可用的字符,每年還在不斷的增加,可以看作是一種通用的字符集。它將全世界所有的字符統一化,統一編碼,不會再出現字符不兼容和字符轉換的問題。它有以下三種編碼方式:1.UTF-32編碼:固定使用4個字節來表示一個字符,存在空間利用效率的問題。2.UTF-16編碼:對相對常用的60000余個字符使用兩個字節進行編碼,其余的使用4字節。3.UTF- 8編碼:兼容ASCII編碼;拉丁文、希臘文等使用兩個字節;包括漢字在內的其它常用字符使用三個字節;剩下的極少使用的字符使用四個字節。Oracle字符集基本原理在搞懂Oracle字符集基本原理之前,一定要先分清以下三個概念:1. Oracle數據庫服務器字符集:即Oracle以哪種字符編碼存儲字符,可以通過以下語句查出數據庫字符集的設置。
復制代碼 代碼如下:
SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';PARAMETER VALUE------------------------------ -----------------NLS_CHARACTERSET AL32UTF8
2. 客戶端操作系統字符集:即客戶端操作系統以哪種字符編碼存儲字符。如果是Windows,可以使用chcp命令獲得代碼頁(code page):復制代碼 代碼如下:
C:\Users\xianzhu>chcpActive code page: 936
根據該代碼頁,到微軟的官方文檔《National Language Support (NLS) API Reference》找到其對應的字符集。 如果是Linux,字符集在/etc/sysconfig/i18n設置:網seo優化趨勢復制代碼 代碼如下:
LANG="zh_CN.GB2312" (指定當前操作系統的字符集) SUPPORTED="zh_CN.GB2312"(指定當前操作系統支持的字符集) SYSFONT="lat0-sun16"(指定當前操作系統的字體)
3. 客戶端NLS_LANG參數:該參數用于向Oracle指示客戶端操作系統的字符集。有了以上3個基本概念之后,我來闡述一下Oracle字符集轉換的基本原則:1.設置客戶端的NLS_LANG為客戶端操作系統的字符集2.如果數據庫字符集等于NLS_LANG,數據庫和客戶端傳輸字符時不作任何轉換3.如果它們倆不等,則需要在不同字符集間轉換,只有客戶端操作系統字符集是數據庫字符集子集的基礎上才能正確轉換,否則會出現亂碼。幾種常見情況分析下面先看一個例子,再透過現象看本質,我們會針對這個例子進行分析。該例子如下:聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-22 ,文章[Oracle] 徹底搞懂Oracle字符集建站知識主要講述字符集,標簽,[Oracle] 徹底搞懂Oracle字符集建網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_4992.html