摘要:
js的string.length 屬性取的是字串的實際長度
php的str_len()函式取的是字串的位元組長度,中文utf-8佔3個位元組,gb2312佔2個位元組
mysql中的varchar型別長度,指字元長度
乙個漢字在utf-8編碼中占用幾個位元組?
占用3個位元組的範圍
u+2e80 - u+2ef3 : 0xe2 0xba 0x80 - 0xe2 0xbb 0xb3 共 115 個
u+2f00 - u+2fd5 : 0xe2 0xbc 0x80 - 0xe2 0xbf 0x95 共 213 個
u+3005 - u+3029 : 0xe3 0x80 0x85 - 0xe3 0x80 0xa9 共 36 個
u+3038 - u+4db5 : 0xe3 0x80 0xb8 - 0xe4 0xb6 0xb5 共 7549 個
u+4e00 - u+fa6a : 0xe4 0xb8 0x80 - 0xef 0xa9 0xaa 共 44138 個
u+fa70 - u+fad9 : 0xef 0xa9 0xb0 - 0xef 0xab 0x99 共 105 個
合計:52156個
占用4個位元組的範圍
u+20000 - u+2fa1d : 0xf0 0xa0 0x80 0x80 - 0xf0 0xaf 0xa8 0x9d 共 64029 個
合計:64029個
所以,我認為答案應該是:3個或4個位元組。
//字元編碼數值對應的儲存長度:
//ucs-2編碼(16進製制) utf-8 位元組流(二進位制)
//0000 - 007f 0******x (1位元組)
//0080 - 07ff 110***xx 10****** (2位元組)
//0800 - ffff 1110***x 10****** 10****** (3位元組)
string.prototype.getbyteslength = function() else if ((0x0080 <= charcode) && (charcode <= 0x07ff)) else if ((0x0800 <= charcode) && (charcode <= 0xffff)) else
} return totallength;
} var str=",";
alert("字元數"+str.length+" ,位元組數"+str.getbyteslength());
php字元長度使用mb附加類庫mb_strlen()獲取
SQLServer 字元長度
要求 過濾資料庫中某個字串 字段 中的單個字母或是數字 開始的時候使用 sql 函式 len select from table1 wherelen name 1 結果其中的單個漢字也過濾掉了。這個函式返回的是字串的長度。於是使用另乙個長度函式 datalength select from tabl...
Mysql group concat字元長度限制
語句如下 select a id as id a category name as category name concat group concat separator as drug data from drug category a left join drug b on a id b cat...
字串長度
當字元全是英文本元的時候,兩者是一樣。這裡主要比較一下,中英文混排的時候,兩個計算結果。測試時編碼方式是utf8 複製 如下 str 中文a字1符 echo strlen str echo echo mb strlen str,utf8 輸出結果 14 6 結果分析 在strlen計算時,對待乙個u...