一、其中js中,測試環境 firefox25瀏覽 若是html中的編碼和瀏覽器瀏覽的編碼一致的狀況下,中文字符的長度算做1;php
var strr=new String; strr='我是在fadfaa'; console.log(strr.length);
在utf8 和gbk的編碼下,輸出的結果都是9;html
二、可是在php中 函數strlen中中文字符會因爲字符編碼的不一樣,長度會不一樣,在gbk中字字符長度爲2; 在utf8 中中文字符的長度爲3;mysql
$str="我是在fadfaa"; var_dump($str); echo strlen($str);
這個在utf8中的結果是15,在gbk中的結果是12;sql
mb_internal_encoding("UTF-8"); $str="我是在fadfaa"; var_dump($str); echo strlen($str); echo mb_strlen($str); echo mb_internal_encoding(); echo "<br>"; echo mb_substr($str, 0,4);
這樣的處理的方法不錯,最後一行輸出的代碼爲數據庫
我是在f
三、在mysql數據庫中,字符集我設置爲gbk瀏覽器
SELECT LENGTH(char1) FROM mytest1 WHERE id=1
其中char1的內容爲「我是在fadfaa」; 結果爲12;函數
若是我再次把字符集設置爲utf8的話,執行相同的結果爲15 (這個和php中的strlen的執行結果是同樣的)測試