php读取mysql数据库中文字符串长度的问题

PHP自带的函数如strlen()、mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节。
$str = 'Hello,China!';
echo strlen($str); // 输出:12

一个汉字占多少长度与编码有关:
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节

<?php
header("Content-Type:text/html; charset=utf-8");
$str='我';
echo strlen($str); // 输出:3
?>

<?php
header("Content-Type:text/html; charset=gbk");
$str='我';
echo strlen($str); // 输出:2
?>

MySQL检查长度,可用SQL语言:

select LENGTH(fieldname) from tablename 

 来查看,在mysql中CHAR_LENGTH输出的则是屏蔽了字符存储细节,是实际的字符个数。

猜你喜欢

转载自junxgd.iteye.com/blog/2245618
今日推荐