A-A+
ecshop解决中文字符串乱码的解决方法
在商城首页截取新闻的中文标题时,发现了乱码,更多的是断码,就是不能够正常的将中文字符全部给显示出来,其实这个问题在 php 中就已经突显出来了,因为一个中文是两个字符,所以在调整的时候就很困难,甚至出现乱码这样的问题。
解决的方法也很简单,夏日博客在网上找了两款截取中文的函数代码,一个是截取 UTF8 字符串格式的,一个是截取 gbk 字符串格式的,将这两款函数整合到 ecshop 当中就可以了,实例代码如下.
utf8格式截取中文字符串函数:
- <?php
- //截取utf8字符串
- function utf8Substr($str, $from, $len)
- {
- return preg_replace(‘#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,’.$from.’}’.
- ‘((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,’.$len.’}).*#s’,
- ‘$1′,$str);
- }
- ?>
gbk格式截取中文字符串函数:
- <?php
- //截取中文字符串
- function mysubstr($str, $start, $len) {
- $tmpstr = “”;
- $strlen = $start + $len;
- for($i = 0; $i < $strlen; $i++) {
- if(ord(substr($str, $i, 1)) > 0xa0) {
- $tmpstr .= substr($str, $i, 2);
- $i++;
- } else
- $tmpstr .= substr($str, $i, 1);
- }
- return $tmpstr;
- }
- ?>