CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

关于substr取中文字串的乱码问题?

楼主gundamzaku(Z钢弹)2004-03-20 01:49:16 在 Web 开发 / PHP 提问

我用SUBSTR去最一段文本的一段.  
  从0取到20.但经常会有出现最后的一个中文字变成了"?"  
  我想是因为中文编码和英文编码不一样吧.  
  中文占两个字节.英文一个.然后读最后一个中文的时候不巧真好读了他一半的字节.然后就显示不出来了.所以变成了"?".因为最后一个字可能正好占20,21.要取到21才能正常显示.  
  所以想问一下.应该如何解决这个乱码问题??把0取到20改成21是没有用的.因为文本不是固定的.而且文本也是中英文混合的. 问题点数:20、回复次数:7Top

1 楼shuzai()回复于 2004-03-20 02:51:39 得分 0

just   use   mb_substr()Top

2 楼hahawen(变态的大龄青年)回复于 2004-03-20 08:06:32 得分 0

http://expert.csdn.net/Expert/FAQ/List_Room_FAQ_Index.asp?Roomid=303Top

3 楼ice_berg16(寻梦的稻草人)回复于 2004-03-20 08:14:54 得分 20

/*   函数   sub_str($text,   $length)  
  **   功能   从文本中截取指定长度字符串,考虑了对中文的处理  
  **   参数   $text   要截取的文本  
  **   参数   $length   要截取的字符串长度  
  */  
  function   sub_str($text,   $length)  
  {  
  for   ($i=0;   $i<$length;   $i++)  
  {  
  $chr   =   substr($text,   $i,   1);  
  if   (ord($chr)   >   0x80)//字符是中文  
  {  
  $length++;  
  $i++;  
  }  
   
  }  
  $str   =   substr($text,   0,   $length);    
  return   $str;  
  }Top

4 楼52juanjuan(Fibona)回复于 2004-03-20 08:50:27 得分 0

楼上的好方法Top

5 楼litao3029(凡人梦)回复于 2004-03-20 09:45:15 得分 0

markTop

6 楼wxq4100798(aa)回复于 2004-03-20 09:49:38 得分 0

呵呵,二楼的朋友函数和dicuz里面用的差不多哦  
  function   wordscut($string,   $length)    
  {  
      $wordscut="";  
           
  if(strlen($string)   >   $length)    
  {  
  for($i   =   0;   $i   <   $length   -   3;   $i++)  
    {  
  if(ord($string[$i])   >   127)    
  {  
  $wordscut   .=   $string[$i].$string[$i   +   1];  
  $i++;  
  }    
  else    
  {  
  $wordscut   .=   $string[$i];  
  }  
  }  
  return   $wordscut.'   ...';  
  }  
  return   $string;  
  }  
  Top

7 楼tigerhu76(虎虎)回复于 2004-09-10 10:51:19 得分 0

markTop

相关问题

  • Apache+Tomcat url传递的中文字符串乱码问题
  • WIN98里的文字乱码问题
  • visio文字贴到word出现乱码
  • 关于中文字符串编译,本机测试OK,上传上去乱码!分不够再加
  • 求救:关于LINUX9+tomcat4.1.29下面的读取中文字符串响应乱码问题!!
  • c#写的webservice,接收到的中文字符串全部变成乱码是怎么回事? 要怎么改?
  • 急急急·高手帮忙,在Java中引用C++的动态链接库,中文字符串参数变成乱码,怎么办?
  • 邹建和各位高手请进:如何用SQL查出字符串中的中文字符或乱码?谢谢
  • jsp提交form后, 写入数据库为何含中文字符串的字段为乱码,如何结决,望高手指点
  • 为什么邮件中的中文文字有时是乱码?

关键词

  • 文本
  • 中文
  • wordscut
  • 截取
  • substr
  • length
  • str
  • text

得分解答快速导航

  • 帖主:gundamzaku
  • ice_berg16

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo