摘要 腾兴网为您分享:php 检测字符编码代码,掌上电力,云南移动,悦作业,银行帮等软件知识,以及秒赚钥匙,hedit,飞秋2015,电竞大师,我的世界浩方电竞平台,佳能ts9020驱动,哈佛商业评论,小米小说,x903,csdn,差旅报销单模板,医保自查报告范文,dm123,电脑短视频,拍拍网今日特价等软件it资讯,欢迎关注腾兴网。blockquote function utf8_gb2312($str, $default = 'gb2312') { $str = preg_replace(/[x01-x7f] /, , $str); if (empty($str)) return $default; $preg = array( gb2312 = /^([xa1-xf7][xa0-xfe]) $/, //正则判断是否是gb2312 utf-8 = /^[x{4e00}-x{...

function utf8_gb2312($str, $default = 'gb2312')

{

$str = preg_replace("/[x01-x7f] /", "", $str);

if (empty($str)) return $default;

$preg =  array(

"gb2312" => "/^([xa1-xf7][xa0-xfe]) $/", //正则判断是否是gb2312

"utf-8" => "/^[x{4e00}-x{9fa5}] $/u",      //正则判断是否是汉字(utf8编码的条件了),这个范围实际上已经包含了繁体中文字了

);

if ($default == 'gb2312') {

$option = 'utf-8';

} else {

$option = 'gb2312';

}

if (!preg_match($preg[$default], $str)) {

return $option;

}

$str = @iconv($default, $option, $str);

//不能转成 $option, 说明原来的不是 $default

if (empty($str)) {

return $option;

}

默认编码是gb2312,而且我统计了一下,90%的情况下都是gb2312,所以,我的检测函数不能出现本来是gb2312的,结果被检测出utf8. 基本思路是:

1. 把所有的ascii去掉,如果全部都是ascii,那么就是gb2312。

2. 假设这个字符串是gb2312,用一个正则检查它是否是真的gb2312,如果不是,那么就是utf-8

3. 然后,用iconv 把字符串转换成utf8,如果转换不成功,那么原来可能不是真正的一个gb2312编码的字符

(用正则匹配我已经尽量精确,但是,gb2312的编码不是连续的,还是会有空洞),那么最后的编码就是utf-8.

4. 否则就是gb2312 编码

加入这样的检查功能后,在1000个关键字里面,就出现了1个乱码,比以前的近100个关键字乱码少了很多。

相关推荐

php+检测字符集,php测试代码_php 检测字符编码代码相关推荐

  1. 字符集(Character Set)和字符编码(Character Encoding)

    计算机字符编码 字符:是各种文字和符号的总称,包括各个国家的文字,标点符号,图形符号,数字等. 字符集(Character Set.Charset):字符集是多个符号的集合,每个字符集包含的字符个数不 ...

  2. php 表情 代码_PHP 大量QQ表情代码替换

    跳至 [1] [2] [全屏预览]'撇嘴', '[face2.gif]'=>'色', '[face3.gif]'=>'发呆', '[face4.gif]'=>'得意', '[face ...

  3. 购物车及商品php代码_php购物车代码_php网上商城购物车代码一例

    摘要 腾兴网为您分享:php网上商城购物车代码一例,有信,英语字典,携程,网赚招聘等软件知识,以及迅雷vip补丁,全能素描,苏酒门户,inshort视频剪辑,北京地铁高清大图,监控上网,云播搜,维融打 ...

  4. php怎么写更新代码,留言板代码_php留言板更新代码

    摘要 腾兴网为您分享:php留言板更新代码,政务易,小米手环,无忧兼职,同花顺等软件知识,以及中国农技推广app,化学元素周期表高清,杀毒软件2012,汽车票app,艾肯micu驱动,instagra ...

  5. 计数器代码php,计数器代码_php计数器的简单代码举例

    摘要 腾兴网为您分享:php计数器的简单代码举例,自动刷宝,中国人保,知富,优学堂等软件知识,以及互博,e动生命,大采集,bing输入法,一起看地图,万能福利吧,小象嗨tv,精灵宝可梦究极日月,社保, ...

  6. php mysql删除代码_php删除数据库的代码

    php删除数据库的代码是"drop database ;",其中drop命令用于删除数据库,参数"database"的值是指定要删除的数据库名. MySQL 删 ...

  7. 购物车及商品php代码_php网上商城购物车代码一例

    一个包含促销活动的购物车,用到了PHP的zend framework框架. 购物车的数据库设计: 1. id 2. goods_id 商品ID 3. session_id 购物车ID 4. goods ...

  8. 使用API函数 GetACP 获取Windows系统当前代码页(字符编码)

    代码页是字符集编码的别名,也称"内码表",是特定语言的字符集的一张表. 代码页分为两种:一种是ANSI代码页:另一种是OEM代码页. ⑴OEM代码页主要是用于Windows系统中的 ...

  9. java 默认字符集 iso_第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码及......

    1.函数介绍 在Java中,字符串用统一的Unicode编码,每个字符占用两个字节,与编码有关的两个主要函数为: 1)将字符串用指定的编码集合解析成字节数组,完成Unicode-〉charsetNam ...

最新文章

  1. rpc.ratatd安装过程中遇到的问题
  2. Maven(九)Eclipse创建Web项目(简单方式)
  3. linux下后缀为so的文件怎么打开,linux中.so后缀的文件怎么使用啊
  4. linux搭建lnnp_linux主机安装lnmp详细步骤
  5. 【转】在WPF中自定义控件
  6. Web应用安全————多点登录互斥
  7. springboot 插入返回id_Spring Boot实现分布式微服务开发实战系列(七)
  8. mysql geometry 维度_使用MySQL的geometry类型处理经纬度距离问题的方法
  9. 【转】java线程池的原理和机制
  10. echarts 生成 迁徙图_Echarts地图的迁徙图
  11. 夜神模拟器调试Android应用程序
  12. 一文弄懂Spring Cloud的5大核心组件详解:Eureka+Hystrix+Zuul+Ribbon
  13. 妇产科护理学复习重点
  14. WinXP去掉桌面图标阴影
  15. 安卓初学之基准线实战
  16. js实现几秒倒计时之后自动跳转页面
  17. 计算机中存储数据最小的单位是什么,计算机中存储数据的最小单位和存储容量的基本单位各是什么?...
  18. iOS代码实现布局(三)—用CocoaPods导入第三方库Masonry
  19. Unity 物体移动碰撞抖动(原因和解决方法)
  20. 工具类|快递物流的订阅与查询

热门文章

  1. 29.【算法五章-----03(未完毕)】
  2. 7-1 0-1背包 [PTA]
  3. Java Review - 线程池使用FutureTask的小坑
  4. 基于Java实现图片滑动验证(包含前端代码)
  5. springboot logging
  6. 竞价员每天都在干什么?竞价推广工作流程是怎样的?
  7. 红黑树算法原理及实现
  8. 提前 5 个月完成年度目标,B 站的新用户从哪来?
  9. 乱斗西游中获得英雄碎片的途径有哪些
  10. C++常用数学运算(待完结)