社区
基础编程
帖子详情
如何截取中文字符串保证不出现乱码?
JiYangTX
2006-01-01 03:57:25
如何截取中文字符串保证不出现乱码?
如字符串 "a你好!还有好多字aaaa"截10个字怎么保证不出现乱码?
最好能给个代码
...全文
363
5
打赏
收藏
如何截取中文字符串保证不出现乱码?
如何截取中文字符串保证不出现乱码? 如字符串 "a你好!还有好多字aaaa"截10个字怎么保证不出现乱码? 最好能给个代码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
arcow
2006-01-02
打赏
举报
回复
/**
* 截取中文部分字符串
*
* 截取指定字符串指定长度的函数,该函数可自动判定中英文,不会出现乱码
*
* @access public
* @param string $str 要处理的字符串
* @param int $strlen 要截取的长度默认为10
* @param string $other 是否要加上省略号,默认会加上
* @return string
*/
function showtitle($str,$strlen=26,$other=false) {
for($i=0;$i<$strlen;$i++)
if(ord(substr($str,$i,1))>0xa0) $j++;
if($j%2!=0) $strlen++;
$rstr=substr($str,0,$strlen);
if (strlen($str)>$strlen && $other) {$rstr.='...';}
return $rstr;
}
JiYangTX
2006-01-02
打赏
举报
回复
还没人回就沉了,顶下
Fibona
2006-01-02
打赏
举报
回复
给一个我自己写的参考一下
/*
进行字符串的截取
$start:为子字符串的开始位置,
$len为子字符串的长度
$str为截取的字符串
返回$str中从start开始的,长度为len的字符串的长度
作者:(fibona)熊祥众
日期:2005年12月
*/
function KTSubstr($str,$start,$len)
{
if($start< 0 && $len < 0)
{
return $str;
}
if(($start+$len) >= strlen($str))
{
return substr($str,$start,$len);
}
else
{
$j=0;
$num=$len;
for($i=$start; $i< $num-1;$i++)
{
if(ord(substr($str,$i,1))>0xa0) $j++;
}
if($j%2!=0)
{
$num=$num+1;
}else
{
$num=$num;
}
return substr($str,$start,$num-1)."...";
/*
if(ord(substr($str,$start+$len,1))>0xa0)
{
$m_strlen=$len+1;
//echo $m_strlen;
//echo "<hr>";
}
else
{
$m_strlen=$len;
}
return substr($str,$str,$m_strlen-1);
*/
}
}
surfchen
2006-01-02
打赏
举报
回复
mb_string
thunderx
2006-01-02
打赏
举报
回复
做循环,一个一个的数下去,遇到中文字符就往下走一位,直到相应长度为止;
注意,判断中文字符的时候用0x80,0xa1只适合gb2312的,而0x80+是适合GBK的,保险一些!
函数简单举例如下:
function cutGBK($pString,$pLength,$sign='...'){
$length = strlen($pString);
if($pLength > $length) {
$res = $pString.$sign;
}else{
for($i=0;$i<=$pLength;$i++){
if (ord(substr($pString,$i,1)) > 0x80){
$res .= substr($pString,$i,2);
$i++;
}else{
$res .= substr($pString,$i,1);
}
}
}
return $res.$sign;
}
c# 加密和解密相关代码
i++) //遍历
字符串
中的所有字符,只能加密
字符串
,无法加密汉字 { tem_Character = System.Convert.ToChar(InputText.Substring(i, 1)); //获取
字符串
中指定的字符 UnicodeChar = (int)tem_Character; //获取当前...
PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1
实例079 自定义函数
截取
中文
字符串
113 实例080 公告标题的
截取
114 实例081 论坛内容的简短输出 116 实例082 自定义函数过滤
字符串
117 2.8
字符串
118 实例083 过滤论坛帖子中的空白和特殊字符 118 实例084 对论坛...
Python 47个
字符串
方法
# Python 47个
字符串
方法## 课程介绍同学们是否总是要搜资料、查官网后,才知道怎么操作
字符串
?如果是,来学学本课程吧,本课程以讲解官网文档的方式,讲解 Python 47个
字符串
方法,涉及替换、删除、连接、查找、...
PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2
实例079 自定义函数
截取
中文
字符串
113 实例080 公告标题的
截取
114 实例081 论坛内容的简短输出 116 实例082 自定义函数过滤
字符串
117 2.8
字符串
118 实例083 过滤论坛帖子中的空白和特殊字符 118 实例084 对论坛...
Tinyxml 源代码(VC6 & VS2005)
老版本的TinyXML“保留”了字符实体,而在新版本中它们会被转化成
字符串
。 另外,所有字符都可以用它的Unicode编码数字来指定, " "和" "都表示不可分的空格字符。 打印 TinyXML有几种不同的方式来打印输出,...
基础编程
21,882
社区成员
140,366
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章