当前位置: 首页 > 图文教程 > 网络编程 > PHP > php中文字符截取防乱码

PHP
默默小谈PHP&MYSQL分页原理及实现
新手学PHP之数据库操作详解及乱码解决!
PHP Ajax实现页面无刷新发表评论
windows下PHP APACHE MYSQ完整配置
Ajax PHP分页演示
Smarty结合Ajax实现无刷新留言本实例
一个用php实现的获取URL信息的类
一个PHP操作Access类(PHP+ODBC+Access)
php你的验证码安全码?
PHP无限分类的类
phpwind中的数据库操作类
开发大型 PHP 项目的方法
require(),include(),require_once()和include_once()的异同
PHP语法速查表
PHP中的日期处理方法集锦
php中常用编辑器推荐
分享PHP入门的学习方法
PHP+MYSQL开发工具及资源收藏
帖几个PHP的无限分类实现想法~
DISCUZ 分页代码

PHP 中的 php中文字符截取防乱码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 109 ::
收藏到网摘: n/a

当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。而值为0x81到0xff与0x00组合始终都显示为“空” 根据这一特点,在substr的结果后面补上一个chr(0),就可以防止出现乱码了 先看段代码
复制代码 代码如下:

<?php
$len = 15;
$str = "这个新闻或是文章的标题很长,需要只显示前面一些字,后面用...来代替";
echo strlen($str)<=$len ? $str : (substr($str,0,$len).chr(0)."...");
?>

chr(0)相关知识:
null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000
虽然chr(0)不会显示出什么,但是他是一个字符。

淡水ps:
如果是UTF-8,UTF-8中的汉字是3个字节的,截取的长度尽量去3的倍数,以避免乱码的产生