找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1543|回复: 0
打印 上一主题 下一主题

php自动识别文字编码并转换为目标编码的方法

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-14 05:43:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了php自动识别文字编码并转换为目标编码的方法。分享给大家供大家参考。具体如下:
在PHP处理页面的时候,我们对于字符集的转换都是采用了iconv或者mb_convert等函数,但,这其实是有一个前提的。即我们事先得知道in和out是什么样的编码,我们才能进行正确的转换。
虽然大多数转换都是在gbk和utf-8之间转,但如果不知道转换对象的编码怎么办呢?谷歌出来这么一个函数safeEncoding,可以简单的识别UTF8和GBK的编码。这个函数在一定程度上识别的很准确,但是在一些比较复杂的环境中就不是那么的好用了. 下面我结合了GBK和UTF-8编码的不同点,使用正则表达式来判断UTF-8编码并使用mb_convert_encoding函数来进行转换. 在国内,基本上比较流行的编码就是GBK和UTF-8, 所以这个函数是针对这两个编码进行自动转换的.
/**
* @ string 需要转换的文字
* @ encoding 目标编码
**/
function detect_encoding($string,$encoding = 'gbk'){
$is_utf8 = preg_match('%^(?:[\x09\x0A\x0D\x20-\x7E]| [\xC2-\xDF][\x80-\xBF]| \xE0[\xA0-\xBF][\x80-\xBF] | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  | \xED[\x80-\x9F][\x80-\xBF] | \xF0[\x90-\xBF][\x80-\xBF]{2} | [\xF1-\xF3][\x80-\xBF]{3} | \xF4[\x80-\x8F][\x80-\xBF]{2} )*$%xs', $string);
if($is_utf8 && $encoding == 'utf8'){
  return $string;
}elseif($is_utf8){
  return mb_convert_encoding($string, $encoding, "UTF-8");
}else{
  return mb_convert_encoding($string, $encoding, 'gbk,gb2312,big5');
}
}
希望本文所述对大家的php程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • java asp分析各种搜索引擎的关键字,自动识别url 中关键字的编码
  • 基于OpenCV的PHP图像人脸识别技术
  • 基于jquery的textarea发布框限制文字字数输入(添加中文识别)
  • View中如何进行手势识别onFling动作实现介绍
  • java网络编程之识别示例 获取主机网络接口列表
  • Java进阶教程之运行时类型识别RTTI机制
  • Java基于直方图应用的相似图片识别实例
  • java识别一篇文章中某单词出现个数的方法
  • 举例讲解Java的RTTI运行时类型识别机制
  • 识别率很高的java文字识别技术
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端