1. 程式人生 > >關於在mysql和oracle中編碼對varchar等型別的影響

關於在mysql和oracle中編碼對varchar等型別的影響

今天在測試oracle的時候發現,我用varchar2(10),的欄位,居然存不下“凱爾特人”四個字元;和我在學習mysql中顯然是不一樣的,查閱資料發現:

mysql 5.0 之後 varchar(1)是可以存一個字元,不管是

數字、英文字母還是漢字都可以(UTF8,三個位元組也可以)!

而在oracle中不管是varchar還是varchar2,都要嚴格遵照編碼:
GBK的話,一個漢字兩個位元組
UTF-8,一個漢字三個位元組
一個utf8數字佔1個位元組 一個utf8英文字母佔1個位元組 少數是漢字每個佔用3個位元組,多數佔用4個位元組。
在GBK環境下varchar、varchar2和char都要嚴格遵照編碼!
UTF8下,varchar(3),varchar2(3)和char(3)才能放下一個字元!
GBK下,varchar(2),varchar2(2)和char(2)才能放下一個字元!