互联网创业初体验:纠结的新模式死结的新市场
菲玛特线下体验馆尝试实体体验B2C2C网店模式
B2C细分产品 兰缪紧盯女士内衣
【电子商务】B2C发展的瓶颈:物流配送解析

现在的位置: 首页程序编程>正文

programe category
PHP汉字截取乱码的解决方法
发表于:2009年08月20日  分类:程序编程  评论关闭  539 次阅读 

一般情况下我们使用substr截取汉字可能会遇到乱码问题。因为汉字是双字节的,当被截取了一个字节时,这个汉字就无法显示,乱掉了。

其实解决很简单,看下面的截取函数:

//截取超长字符串
function curtStr($str,$len=30){
if(strlen($str)>$len){
$str = substr($str,0,$len);
$str .= chr(0) .”…”;
return $str;
}

上面的chr(0)不是null
null是什么都没有,而chr(0)的值是0。表示成16进制是0×00,表示成二进制是00000000
虽然chr(0)不会显示出什么,但是他是一个字符。
当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。而值为0×81到0xff与0×00组合始终都显示为“空”
根据这一特点,在substr的结果后面补上一个chr(0),就可以防止出现乱码了.

相关日志缩略图

报歉!评论已关闭.