JS PHP MySQL 字元長度

2021-09-06 12:13:25 字數 1395 閱讀 7922

摘要:

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...