中文字符串以及英文字符串的研究
中文字符串以及英文字符串的研究
1、其中js中,测试环境 firefox25浏览 如果html中的编码和浏览器浏览的编码一致的情况下,中文字符的长度算作1;
var strr=new String;
strr='我是在fadfaa';
console.log(strr.length);
在utf8 和gbk的编码下,输出的结果都是9;
2、但是在php中 函数strlen中中文字符会由于字符编码的不同,长度会不同,在gbk中字字符长度为2; 在utf8 中中文字符的长度为3;
$str="我是在fadfaa";
var_dump($str);
echo strlen($str);
这个在utf8中的结果是15,在gbk中的结果是12;
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
3、在mysql数据库中,字符集我设置为gbk
SELECT LENGTH(char1) FROM mytest1 WHERE id=1
其中char1的内容为“我是在fadfaa”; 结果为12;
如果我再次把字符集设置为utf8的话,执行相同的结果为15 (这个和php中的strlen的执行结果是一样的)
白发三千丈