| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1411 人关注过本帖
标题:解决中文被截成乱码的问题
只看楼主 加入收藏
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
 问题点数:0 回复次数:6 
解决中文被截成乱码的问题
<?php
//2007-04-09 Create By Rain Chan
function left($str, $len) { //解决中文被截成乱码的问题
$arr = str_split($str);
$i = 0;
foreach ($arr as $chr) {
if (ord($chr) > 128)
$add = $add ? 0 : 1;
$i++;
if ($i == $len)
break;
}
return substr($str, 0, $len + $add);
}
//echo left($_GET['str'], $_GET['len']);
?>
搜索更多相关主题的帖子: 乱码 Rain str 中文 arr 
2007-04-10 23:26
lmhllr
Rank: 8Rank: 8
等 级:贵宾
威 望:44
帖 子:1504
专家分:42
注 册:2005-5-12
收藏
得分:0 
最简单的,用mb_扩展库~~
2007-04-11 09:14
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 
mb_扩展截出来的不整齐

2007-04-13 23:11
lmhllr
Rank: 8Rank: 8
等 级:贵宾
威 望:44
帖 子:1504
专家分:42
注 册:2005-5-12
收藏
得分:0 

<?php
/* 函数名:strSplit
++ 功 能:中英文混合截取
++ 作 者:cator
*/
function strSplit($s, $len) {
$end = '…';
$result = '';
$strLen = strlen($s);
if ($strLen <= $len) {
return $s;
}
$len -= 2;
for ($i=0; $i<$len && $i<$strLen; $i++) {
$c = $s[$i];
if (ord($c) < 0x80) {
$result .= $c;
} elseif ($i+1<$len) {
$result .= $s[$i++] . $s[$i];
}
}
return ($i < $strLen) ? ($result . $end) : $result;
}

echo strSplit('1234567', 10), '<br />';
echo strSplit('1234567890', 10), '<br />';
echo strSplit('1234中文567890abcdefghijkl', 10), '<br />';
echo strSplit('全部都是中文', 10), '<br />';
echo strSplit('全a部b都c是d中e文', 10), '<br />';
?>

2007-04-14 11:36
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
收藏
得分:0 
我也来一个
支持中英文混合、左、右截取
<?php
//left左侧截取,right右侧截取
//作者:ISLET
function left($content,$length) {
if($length && strlen($content)>$length){
$num=0;
for($i=0;$i<$length-3;$i++) {
if(ord($content[$i])>127){
$num++;
}
}
$num%2==1 ? $content=substr($content,0,$length-4):$content=substr($content,0,$length-3);
$content.='..';
}
return $content;
}
function right($content,$length) {
if($length && strlen($content)>$length){
$len=strlen($content);
$s=$len-$length;
$num=0;
for($i=$s;$i<$len;$i++) {
if(ord($content[$i])>127){
$num++;
}
}
$num%2==1 ? $content=substr($content,$s+1,$length):$content=substr($content,$s+2,$length);
$content='..'.$content;
}
return $content;
}
?>
2007-04-14 14:28
lmhllr
Rank: 8Rank: 8
等 级:贵宾
威 望:44
帖 子:1504
专家分:42
注 册:2005-5-12
收藏
得分:0 
楼上这个好多了,顶!
2007-04-14 21:23
jiushiwo
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-3-10
收藏
得分:0 
学习学习

做你自己! everything will go! lanfei_1234@
2007-04-16 15:59
快速回复:解决中文被截成乱码的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021812 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved