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

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

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的执行结果是一样的)

posted @ 2013-11-05 10:28  野三坡  阅读(493)  评论(0编辑  收藏  举报