A-A+

ecshop解决中文字符串乱码的解决方法

2015年07月02日 PHP开源系统 暂无评论 阅读 12 views 次

在商城首页截取新闻的中文标题时,发现了乱码,更多的是断码,就是不能够正常的将中文字符全部给显示出来,其实这个问题在 php 中就已经突显出来了,因为一个中文是两个字符,所以在调整的时候就很困难,甚至出现乱码这样的问题。

解决的方法也很简单,夏日博客在网上找了两款截取中文的函数代码,一个是截取 UTF8 字符串格式的,一个是截取 gbk 字符串格式的,将这两款函数整合到 ecshop 当中就可以了,实例代码如下.

utf8格式截取中文字符串函数:

  1. <?php  
  2. //截取utf8字符串  
  3. function utf8Substr($str$from$len)  
  4. {  
  5. return preg_replace(‘#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,’.$from.’}’.  
  6. ‘((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,’.$len.’}).*#s’,  
  7. $1′,$str);  
  8. }  
  9. ?>  

gbk格式截取中文字符串函数:

  1. <?php  
  2. //截取中文字符串  
  3. function mysubstr($str$start$len) {  
  4. $tmpstr = “”;  
  5. $strlen = $start + $len;  
  6. for($i = 0; $i < $strlen$i++) {  
  7. if(ord(substr($str$i, 1)) > 0xa0) {  
  8. $tmpstr .= substr($str$i, 2);  
  9. $i++;  
  10. else  
  11. $tmpstr .= substr($str$i, 1);  
  12. }  
  13. return $tmpstr;  
  14. }  
  15. ?>  
标签:

给我留言