您好,登錄后才能下訂單哦!
本篇內容主要講解“Oracle字符集的基本原理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Oracle字符集的基本原理”吧!
一、三個概念:
1. Oracle數據庫服務器字符集:
select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
2. 客戶端操作系統字符集:
/etc/sysconfig/i18n設置
LANG="zh_CN.GB2312" (指定當前操作系統的字符集)
SUPPORTED="zh_CN.GB2312"(指定當前操作系統支持的字符集)
SYSFONT="lat0-sun16"(指定當前操作系統的字體)
3. 客戶端NLS_LANG參數:該參數用于向Oracle指示客戶端操作系統的字符集。
二、Oracle字符集轉換的基本原則:
設置客戶端的NLS_LANG為客戶端操作系統的字符集
如果數據庫字符集等于NLS_LANG,數據庫和客戶端傳輸字符時不作任何轉換
如果它們倆不等,則需要在不同字符集間轉換,只有客戶端操作系統字符集是數據庫字符集子集的基礎上才能正確轉換,否則會出現亂碼。
三、最佳實踐
插入過程:
”中國“兩字在客戶端操作系統字符集ZHS16GBK中的編碼是”d6,d0,b9,fa",由于NLS_LANG和數據庫字符集不同,Oracle會進行字符編碼轉換,也就是將字符集ZHS16GBK里“中國”的編碼“d6,d0,b9,fa"轉換為字符集"AL32UTF8"里”中國“的編碼”e4,b8,ad,e5,9b,bd“。
讀取過程:
數據庫端讀取的編碼是”e4,b8,ad,e5,9b,bd“,由于NLS_LANG和數據庫字符集不同,客戶端對數據庫端傳過來的字符編碼進行轉換,數據庫端字符集AL32UTF8里”中國“兩字的編碼”e4,b8,ad,e5,9b,bd“轉換成客戶端操作系統字符集ZHS16GBK里“中國”兩字的編碼“d6,d0,b9,fa",并正常顯示。
經過了兩次轉換,都確實最正確、最推薦的方式。NLS_LANG只和客戶端操作系統的字符集相關,如果客戶端操作系統的字符集和數據庫字符集間無法正確轉換,則應該首先改變客戶端終端的字符集,而不是簡單地把NLS_LANG設為和數據庫字符集一樣。
到此,相信大家對“Oracle字符集的基本原理”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。