今天在測試oracle的時候發現,我用varchar2(10),的字段,竟然存不下「凱爾特人」四個字符;和我在學習mysql中顯然是不同的,查閱資料發現:mysql
mysql 5.0 以後 varchar(1)是能夠存一個字符,無論是
sql
數字、英文字母仍是漢字均可以(UTF8,三個字節也能夠)!oracle
而在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)才能放下一個字符!