專案中oracle10g資料庫表字段為varchar(n)型別,存英文很簡單,只要字母個數不大於n即可。但是對於漢字,按照同樣的方法就不行了。因為對於漢字不同的字符集,在資料庫占用的位元組是不一樣的。utf-8字符集,乙個漢字佔三個位元組,gbk字符集,乙個漢字佔兩個位元組,比如varchar(10)型別的字段,utf-8的漢字,只能存3個,gbk字符集的漢字卻能存5個。
所以在程式中根據表字段varchar的大小,儲存或更新時作出必要的校驗否則後台會報錯。
辦法:1、用** maxlength屬性,比如maxlength="5",即只能存5個漢字。
mysql 5.0以上的版本:
1.乙個漢字佔多少長度與編碼有關:
utf-8:乙個漢字=3個位元組
gbk:乙個漢字=2個位元組
2.varchar(n)表示n個字元,無論漢字和英文,mysql都能存入n個字元,僅是實際位元組長度有所區別
3.mysql檢查長度,可用sql語言:
select length(fieldname) from tablename 來檢視
乙個漢字在資料庫中佔幾個位元組
資料庫表字段為varchar n 型別,存英文很簡單,只要字母個數不大於n即可。但是對於漢字,按照同樣的方法就不行了。因為對於漢字不同的字符集,在資料庫占用的位元組是不一樣的。utf 8字符集,乙個漢字佔三個位元組,gbk字符集,乙個漢字佔兩個位元組,比如varchar 10 型別的字段,utf 8...
系統儲存之 乙個漢字在資料庫佔幾個位元組
參考文獻 gbk是國家標準gb2312基礎上擴容後相容gb2312的標準。gbk的文字編碼是用雙位元組來表示的,即不論中 英文本元均使用雙位元組來表示,為了區分中文,將其最高位都設定成1。gbk包含全部中文字元,是國家編碼,通用性比utf8差,不過utf8占用的資料庫比gbd大。gbk gb2312...
php漢字佔幾個位元組,php乙個漢字幾個位元組
字元的簡介 在js中,中文佔兩個字元,英文佔乙個字元 在php中,不同編碼下不相同,在gbk gb2312編碼下乙個中文佔2個字元,utf 8 unicode編碼下乙個中文佔3個字元 推薦 php教程 php 位元組 和字元 php在utf 8編碼下,乙個漢字佔3個位元組,gbk編碼下只佔2個位元組...