PHP 字符集相关操作

  1. 查询字符编码

    encode = mb_detect_encoding($_REQUEST['city'], array("ASCII","UTF-8","GB2312","GBK","BIG5")); 
    echo $encode;
    
  2. 将非GBK字符集的编码转为GBK

     function charsetToGBK($mixed){
         if (is_array($mixed)) {
             foreach ($mixed as $k => $v) {
                 if (is_array($v)) {
                     $mixed[$k] = charsetToGBK($v);
                 } else {
                     $encode = mb_detect_encoding($v, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
                     if ($encode == 'UTF-8') {
                         $mixed[$k] = iconv('UTF-8', 'GBK', $v);
                     }
                 }
             }
         } else {
             $encode = mb_detect_encoding($mixed, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
             if ($encode == 'UTF-8') {
                 $mixed = iconv('UTF-8', 'GBK', $mixed);
             }
         }
         return $mixed;
     }
    
  3. 将非UTF-8字符集的编码转为UTF-8

     function charsetToUTF8($mixed)
     {
         if (is_array($mixed)) {
             foreach ($mixed as $k => $v) {
                 if (is_array($v)) {
                     $mixed[$k] = charsetToUTF8($v);
                 } else {
                     $encode = mb_detect_encoding($v, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
                     if ($encode == 'EUC-CN') {
                         $mixed[$k] = iconv('GBK', 'UTF-8', $v);
                     }
                 }
             }
         } else {
             $encode = mb_detect_encoding($mixed, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
             if ($encode == 'EUC-CN') {
                 $mixed = iconv('GBK', 'UTF-8', $mixed);
             }
         }
         return $mixed;
     }
    
  4. 检测字符是否是4个字节的,把这些字符转成其他字符

     private static function replace4byte($string, $replacement = '+') {
         return preg_replace('%(?: 
     	      \xF0[\x90-\xBF][\x80-\xBF]{2}  # planes 1-3 
     	     | [\xF1-\xF3][\x80-\xBF]{3}   # planes 4-15 
     	     | \xF4[\x80-\x8F][\x80-\xBF]{2}  # plane 16 
     	    )%xs', $replacement, $string);
     }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值