爱问知识人 爱问教育 医院库

PHP判断字符串编码是否为utf-8的程序代码_PHP教程

首页

PHP判断字符串编码是否为utf-8的程序代码_PHP教程


        

提交回答
好评回答
  • 2023-03-15 20:30:00
      本文章来给各位同学介绍一下关于PHP判断字符串编码是否为utf-8的程序代码,如果你有兴趣不防进入参考。我们以前常用mb_detect_encoding()此函数检测字符编码代码如下 //判断字符串是什么编码
    if ($tag === mb_convert_encoding(mb_convert_encoding($tag, "GB2312", "UTF-8"), "UTF-8", "GB2312")) {
    }
    else {//如果是gb2312 的就转换为utf8的
    $tag = mb_convert_encoding($tag, 'UTF-8', 'GB2312');
    }$keytitle = “%D0%BE%C6%AC”时。
      检测结果却是UTF-8。这个bug其实不算是bug,写程序时也不应当过于依赖mb_detect_encoding,当字符串较短时,检测结果产生偏差的可能性很大。
    怎么解决呢,我的办法是:代码如下$encode = mb_detect_encoding($keytitle, array('ASCII','GB2312′'GBK','UTF-8');个参数分别是:被检测的输入变量、编码方式的检测顺序(一旦为真,后面自动忽略)、strict模式
    对编码检测的顺序进行调整,将最大可能性放在前面,这样减少被错误转换的机会。
      上面办法还是解决不了,下面又找到了一个解决方法。例1代码如下// Returns true if $string is valid UTF-8 and false otherwise。
    function is_utf8($word)
    {
    if (preg_match("/^(["。
      chr(228)。"-"。chr(233)。"]{1}["。chr(128)。"-"。chr(191)。"]{1}["。chr(128)。"-"。chr(191)。"]{1}){1}/",$word) == true || preg_match("/(["。
      chr(228)。"-"。chr(233)。"]{1}["。chr(128)。"-"。chr(191)。"]{1}["。chr(128)。"-"。chr(191)。"]{1}){1}$/",$word) == true || preg_match("/(["。
      chr(228)。"-"。chr(233)。"]{1}["。chr(128)。"-"。chr(191)。"]{1}["。chr(128)。"-"。chr(191)。"]{1}){2,}/",$word) == true)
    {
    return true;
    }
    else
    {
    return false;
    }
    } // function is_utf8http://www。
      bkjia。com/PHPjc/632765。htmlwww。bkjia。comtruehttp://www。bkjia。com/PHPjc/632765。htmlTechArticle本文章来给各位同学介绍一下关于PHP判断字符串编码是否为utf-8的程序代码,如果你有兴趣不防进入参考。
       我们以前常用mb_detect_encoding()此函。

    邹***

    2023-03-15 20:30:00

类似问题

换一换
  • 电脑/网络 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):