PHP中的中文截取乱码问题_gb2312_utf-8
生活随笔
收集整理的這篇文章主要介紹了
PHP中的中文截取乱码问题_gb2312_utf-8
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、字符串編碼為gb2312,一個中文占倆字節(jié)
public static function chinesesubstr($str, $start, $len) { // $str指字符串,$start指字符串的起始位置,$len指字符串長度$strlen = $start + $len; // 用$strlen存儲字符串的總長度,即從字符串的起始位置到字符串的總長度for($i = $start; $i < $strlen;) {if (ord ( substr ( $str, $i, 1 ) ) > 0xa0) { // 如果字符串中首個字節(jié)的ASCII序數(shù)值大于0xa0,則表示漢字$tmpstr .= substr ( $str, $i, 2 ); // 每次取出兩位字符賦給變量$tmpstr,即等于一個漢字$i=$i+2; // 變量自加2} else{$tmpstr .= substr ( $str, $i, 1 ); // 如果不是漢字,則每次取出一位字符賦給變量$tmpstr$i++;}}return $tmpstr; // 返回字符串}二、字符串編碼為utf-8,一個中文占仨字節(jié)
public static function chinesesubstr($str, $start, $len) { // $str指字符串,$start指字符串的起始位置,$len指字符串長度$strlen = $start + $len; // 用$strlen存儲字符串的總長度,即從字符串的起始位置到字符串的總長度for($i = $start; $i < $strlen;) {if (ord ( substr ( $str, $i, 1 ) ) > 0xa0) { // 如果字符串中首個字節(jié)的ASCII序數(shù)值大于0xa0,則表示漢字$tmpstr .= substr ( $str, $i, 3 ); // 每次取出三位字符賦給變量$tmpstr,即等于一個漢字$i=$i+3; // 變量自加3} else{$tmpstr .= substr ( $str, $i, 1 ); // 如果不是漢字,則每次取出一位字符賦給變量$tmpstr$i++;}}return $tmpstr; // 返回字符串}
轉(zhuǎn)載于:https://www.cnblogs.com/webStyle/p/3734489.html
總結(jié)
以上是生活随笔為你收集整理的PHP中的中文截取乱码问题_gb2312_utf-8的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Php通过gsoap调用c++ webs
- 下一篇: PHP-php.ini中文版