中文字符串以及英文字符串的研究

中文字符串以及英文字符串的研究

一、其中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的執行結果是同樣的)測試

相關文章
相關標籤/搜索