1. 請問在項目應用中oracle資料庫字元集該選擇 gbk 還是 utf-8
根據系統來定吧。。。。
中文很容易出亂碼
還有救是要看你的開發環境。。。如果都是WIN 默認就好。
如果 開發是WIN 應用到LINUX 那還是指定一下比較好。
推薦UTF-8
2. oracle資料庫目前的字元集是什麼,該怎麼查
一、什麼是oracle字元集 Oracle字元集是一個位元組數據的解釋的符號集合,有大小之分,有相互的包容關系。ORACLE 支持國家語言的體系結構允許你使用本地化語言來存儲,處理,檢索數據。它使資料庫工具,錯誤消息,排序次序,日期,時間,貨幣,數字,和日歷自動適應本地化語言和平台。 影響oracle資料庫字元集最重要的參數是NLS_LANG參數。它的格式如下: NLS_LANG = language_territory.charset 它有三個組成部分(語言、地域和字元集),每個成分控制了NLS子集的特性。其中: Language 指定伺服器消息的語言,territory 指定伺服器的日期和數字格式,charset 指定字元集。如:AMERICAN _ AMERICA. ZHS16GBK 從NLS_LANG的組成我們可以看出,真正影響資料庫字元集的其實是第三部分。所以兩個資料庫之間的字元集只要第三部分一樣就可以相互導入導出數據,前面影響的只是提示信息是中文還是英文。 二、 很多人都碰到過因為字元集不同而使數據導入失敗的情況。這涉及三方面的字元集,一是oracel server端的字元集,二是oracle client端的字元集;三是dmp文件的字元集。在做數據導入的時候,需要這三個字元集都一致才能正確導入。 1、查詢oracle server端的字元集 有很多種方法可以查出oracle server端的字元集,比較直觀的查詢方法是以下這種:SQL>select userenv('language') from al; 結果類似如下:AMERICAN _ AMERICA. ZHS16GBK
select * from nls_database_parameters where parameter='NLS_CHARACTERSET'
3. Oracle安裝選擇哪個字元集
一般生成資料庫 database_character_set 我選utf8,生成資料庫後不能修改。
安裝oracle程序字元集看你喜歡,中文英文都可。
生成資料庫的國家字元集生成後可以修改。
主要影響以後連接session的默認日期,數據格式等。
4. mysql資料庫字元集選擇,utf8還是utf8mb4更好
這要看你自己了,為了節省空間,一般情況下使用utf8也就夠了,
為了兼容性更好點就用utf8mb4了;
utf8mb4編碼專門用來兼容四位元組的unicode。utf8mb4是utf8的超集,除了將編碼改為utf8mb4外不需要做其他轉換。
5. 資料庫該如何選擇字元集
UTF8是最後的選擇。一般中文環境下建議gb18030-2000
6. mysql資料庫表裡中文亂碼應該選哪種編碼
資料庫中關於字元集的種類有很多,個人建議,資料庫字元集盡量使用utf8(utf-8),以使你的數據能很順利的實現遷移,因為utf8字元集是目前最適合於實現多種不同字元集之間的轉換的字元集,盡管你在命令行工具上無法正確查看資料庫中的內容,我依然強烈建議使用utf8作為默認字元集.如果你想使用gb2312編碼,那麼建議你使用latin1作為數據表的默認字元集,這樣就能直接用中文在命令行工具中插入數據,並且可以直接顯示出來.而不要使用gb2312或者gbk等字元集,如果擔心查詢排序等問題,可以使用binary屬性約束 對編程有影響的主要是客戶端字元集和資料庫字元集(還有一個伺服器字元集,不知道干什麼用的), 資料庫中常用的操作就是保存數據和讀取數據,在這過程中,亂不亂碼和資料庫字元集貌似沒有什麼關系。我們只要保證寫入時選擇的字元集和讀取時選擇的字元集一致,即只需保證兩次操作的客戶端字元集一致即可。
在MySQL的客戶端上執行一次查詢的過程一般是,在客戶端的提示符後面輸入一條SQL語句,回車,然後終端顯示出查詢的結果。這個過程中,只有終端和三個MySQL的系統變數指定了正確的字元集,才能保證我們將一個正確的SQL語句送到伺服器,然後伺服器返回正確的結果,並且在終端正確顯示。
三個MySQL的系統變數是:
1. character_set_client,終端字元集,告訴Server客戶端提交的SQL語句的編碼格式
2. character_set_connection,連接字元集,是伺服器翻譯SQL語句時用到的編碼格式
3. character_set_results,返回的結果集的字元集,是伺服器返回結果集之前把結果集轉換成的編碼格式
在MySQL終端通過執行命令 show variables like 『char%』 可以查看這幾個變數的值。這三個變數通常都設定為同一種字元集,用命令set names [charset name]就可以修改這三個變數的值。一般來說,只要你設定了能夠表示你的數據的字元集,你查詢的結果都可以在終端正確顯示。
舉個例子,使用的表t1是utf8編碼,表中的欄位c1繼承了這個編碼,表創建如下
mysql> create table t1 ( c1 text not null ) character set utf8;
用的字元是漢字「范」,gbk編碼為B7 B6,utf8編碼為E8 8C 83
用下面的SQL語句插入數據
mysql> insert into t1 values( 『范』);
a)如果終端設置為utf8,並且執行了 set names utf8,那麼插入到資料庫中的就是「范」這個字的utf8編碼,這個過程中MySQL不需要做編碼轉換。寫入資料庫的內容可以通過執行 select hex( c1 ) from t1 得到數據的十六進制編碼來驗證。
b)如果終端設置為 utf8,並且執行了set names gbk,那麼執行完這個插入操作後,寫入的二進制數據是E9 91 BC,這是「漢字「鑼」的utf8編碼。這是因為,終端輸入的「范」用的是utf8編碼,而伺服器以為終端發送過來的內容是gbk編碼,所以在向t1表中插入的時候進行了一次gbk到utf8的轉換,結果當然是錯誤的。
c)如果終端設置為gbk,並且執行了set names gbk,那麼執行完插入操作後,寫入t1的依然是「范」這個字的utf8編碼。插入過程中,終端輸入的是「范」的gbk編碼B7 B6,伺服器被告知終端發過來的SQL語句是gbk編碼(由character_set_client指定),所以在插入數據前做了一次gbk到utf8的編碼轉換。
d)如果終端設置為gbk,並且執行了set names utf8,那麼執行完插入操作後,MySQL會報出一個數據被截斷的警告。實際上,輸入終端的是「范」這個字元的gbk編碼B7 B6,而伺服器被告知客戶端發過來的SQL語句是utf8編碼,所以在執行過程中沒有做轉碼,直到插入數據的時候,發現B7 B6不符合utf8的編碼規則,給出了警告信息,實際插入的數據是3F 3F,也就是兩個問號。
查詢的時候是同樣的道理,MySQL也是根據set names設定的字元集來對返回給客戶端的結果集做相應的編碼轉換,如果轉換的結果和終端顯示的字元集一致,就能正確顯示,如果不一致就是亂碼。
結論是,只要終端的字元集和set names指定的字元集一致就可以讓MySQL在處理過程中執行正確的轉碼並且正確地顯示。
另外,如果通過程序操作MySQL資料庫, 那麼也需要事先執行set names命令來指定程序希望輸出的字元集。比如,用程序從一個utf8編碼的資料庫向另外一個gbk編碼的資料庫進行數據遷移,在選取源資料庫數據之前,需要執行set names gbk,才能取到gbk編碼的數據。
7. 什麼是資料庫字元集 資料庫字元集在那種資料庫中才有
就是存儲數據到表中的時候所用到的字元集,不同字元集編碼格式不同,一般編寫應用程序或者web應用操作資料庫遇到的亂碼就是字元集不同造成的,像mysql,oracle都會有字元集問題。
8. 資料庫字元集
資料庫需要設置UTF8字元集, 這樣就可以支持了。
9. mysql 建資料庫用什麼字元集
mysql創建資料庫一般使用的字元集為UTF-8,但具體的要根據實際情況進行選擇。
工具:mysql5.6,Navicat Premium
步驟:
1、打開Navicat Premium,雙擊左側伺服器的樹形結構,連接到伺服器,這里以localhost為例。
10. 國內的Oracle資料庫一般用什麼字元集
ORACLE資料庫有國家字元集(national character set)與資料庫字元集(database character set)之分。兩者都是在創建資料庫時需要設置的。
國家字元集主要是用於NCHAR、NVARCHAR、NCLOB類型的欄位數據,而資料庫字元集使用很廣泛,它用於:CHAR、VARCHAR、CLOB、LONG類型的欄位數據;