帝国CMS模板大全
www.admin99.cn
www.92cms.cn 帝国CMS模板下载站!,情怀,养站,二次开发!源码需求比较大的一站式会员下载,价更省!!!

PHP中GBK和UTF8编码处理(中文,韩文) - php函数

PHP中GBK和UTF8编码处理(中文,韩文)

一、编码范围

1.gbk (gb2312/gb18030)

x00-xff gbk双字节编码范围

x20-x7f ascii

xa1-xff 中文

x80-xff 中文

2.utf-8 (unicode)

u4e00-u9fa5 (中文)

x3130-x318f (韩文)

xac00-xd7a3 (韩文)

u0800-u4e00 (日文)

ps: 韩文是大于[u9fa5]的字符

正则例子:

preg_replace("/([x80-xff])/","",$str);

preg_replace("/([u4e00-u9fa5])/","",$str);

二、代码例子

//判断内容里有没有中文-gbk (php教程)  
function  check_is_chinese( $s ){ 
     return  preg_match( '/[x80-xff]./' ,  $s ); 

//获取字符串长度-gbk (php)  
function  gb_strlen( $str ){ 
     $count  = 0; 
     for ( $i =0;  $i < strlen ( $str );  $i ++){ 
         $s  =  substr ( $str ,  $i , 1); 
         if  (preg_match( "/[x80-xff]/" ,  $s )) ++ $i ; 
        ++ $count ; 
    } 
     return   $count ; 

//截取字符串字串-gbk (php)  
function  gb_substr( $str ,  $len ){ 
     $count  = 0; 
     for ( $i =0;  $i < strlen ( $str );  $i ++){ 
         if ( $count  ==  $len )  break ; 
         if (preg_match( "/[x80-xff]/" ,  substr ( $str ,  $i , 1))) ++ $i ; 
        ++ $count ;        
    } 
     return   substr ( $str , 0,  $i ); 

//统计字符串长度-utf8 (php)  
function  utf8_strlen( $str ) { 
     $count  = 0; 
     for ( $i  = 0;  $i  <  strlen ( $str );  $i ++){ 
         $value  = ord( $str [ $i ]); 
         if ( $value  > 127) { 
             $count ++; 
             if ( $value  >= 192 &&  $value  <= 223)  $i ++; 
             elseif ( $value  >= 224 &&  $value  <= 239)  $i  =  $i  + 2; 
             elseif ( $value  >= 240 &&  $value  <= 247)  $i  =  $i  + 3; 
             else   die ( 'not a utf-8 compatible string' ); 
        } 
         $count ++; 
    } 
     return   $count ; 

 
//截取字符串-utf8(php)  
function  utf8_substr( $str , $position , $length ){ 
     $start_position  =  strlen ( $str ); 
     $start_byte  = 0; 
     $end_position  =  strlen ( $str ); 
     $count  = 0; 
     for ( $i  = 0;  $i  <  strlen ( $str );  $i ++){ 
         if ( $count  >=  $position  &&  $start_position  >  $i ){ 
             $start_position  =  $i ; 
             $start_byte  =  $count ; 
        } 
         if (( $count – $start_byte )>= $length ) { 
             $end_position  =  $i ; 
             break ; 
        }    
         $value  = ord( $str [ $i ]); 
         if ( $value  > 127){ 
             $count ++; 
             if ( $value  >= 192 &&  $value  <= 223)  $i ++; 
             elseif ( $value  >= 224 &&  $value  <= 239)  $i  =  $i  + 2; 
             elseif ( $value  >= 240 &&  $value  <= 247)  $i  =  $i  + 3; 
             else   die ( 'not a utf-8 compatible string' ); 
        } 
         $count ++; 
    } 
     return ( substr ( $str , $start_position , $end_position – $start_position )); 

 
//字符串长度统计-utf8 [中文3个字节,俄文、韩文占2个字节,字母占1个字节] (ruby)  
def utf8_string_length(str) 
    temp = cgi::unescape(str) 
    i = 0; 
    j = 0; 
    temp.length.times{|t| 
         if  temp[t] < 127 
            i += 1 
         elseif  temp[t] >= 127  and  temp[t] < 224 
            j += 1 
             if  0 == (j % 2) 
                i += 2 
                j = 0 
             end  
         else  
            j += 1 
             if  0 == (j % 3) 
                i +=2 
                j = 0 
             end  
         end  
    } 
     return  i 

 
//判断是否是含有韩文-utf-8 (网页特效)  
function  checkkoreachar(str) { 
     for (i=0; i<str.length; i++) { 
         if (((str.charcodeat(i) > 0x3130 && str.charcodeat(i) < 0x318f) || (str.charcodeat(i) >= 0xac00 && str.charcodeat(i) <= 0xd7a3))) { 
             return  true; 
        } 
    } 
     return  false; 
} //开源代码phpfensi.com  
 
//判断是否有中文字符-gbk (javascript)  
function  check_chinese_char(s){ 
     return  (s.length != s.replace(/[^x00-xff]/g, "**" ).length); 

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHP中GBK和UTF8编码处理(中文,韩文) - php函数》
文章链接:https://www.admin99.cn/6821
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
QQ站长交流群:953950264

登录

找回密码

注册