社区
基础编程
帖子详情
如何截取中文字符串保证不出现乱码?
JiYangTX
2006-01-01 03:57:25
如何截取中文字符串保证不出现乱码?
如字符串 "a你好!还有好多字aaaa"截10个字怎么保证不出现乱码?
最好能给个代码
...全文
373
5
打赏
收藏
如何截取中文字符串保证不出现乱码?
如何截取中文字符串保证不出现乱码? 如字符串 "a你好!还有好多字aaaa"截10个字怎么保证不出现乱码? 最好能给个代码
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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;
}
解析使用substr
截取
UTF-8
中文
字符串
出现乱码
的问题
文章中提供了一个名为`cutstr()`的自定义函数,用来在
保证
不
出现乱码
的情况下
截取
UTF-8
字符串
。这个函数通过计算每个字符的实际字节数来逐个处理
字符串
,而不是简单地按固定字节长度
截取
。 函数首先获取
字符串
的...
php
截取
中文
字符串
不乱码的方法
总结来说,要避免 PHP
截取
中文
字符串
时的乱码问题,关键在于正确使用 `mb_substr` 函数并指定
字符串
的编码,同时确保 PHP 文件和网页的编码设置一致。在不确定
字符串
编码的情况下,可以通过 `mb_check_encoding` ...
Golang
中文
字符串
截取
函数实现原理
通过这种方式,即使在
中文
字符串
中进行任意位置和任意长度的
截取
,也能
保证
结果
字符串
的正确性和完整性,不会
出现乱码
。 在实现这个函数时,需要注意几个关键点: 1. 检查begin参数的有效性,若begin小于0,应将其...
java按字节
截取
带有汉字的
字符串
的解法(推荐)
本文将深入探讨如何正确地按字节
截取
带有汉字的
字符串
,以确保不出现半字符或者乱码的情况。 首先,我们需要了解的是,Java默认使用Unicode编码,它对每个字符都分配了一个唯一的16位编码,这意味着大多数汉字在...
JAVA如何按字节
截取
字符串
如果原
字符串
使用的是UTF-8编码,并且包含了多字节字符,那么直接
截取
可能会导致字符被错误地截断,从而
出现乱码
。 因此,对于包含
中文
或其他多字节字符的
字符串
,我们需要考虑编码转换的问题。以下是改进后的代码...
基础编程
21,893
社区成员
140,347
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章