用户
 找回密码
 入住 CI 中国社区
搜索
查看: 7530|回复: 7
收起左侧

[其它 Other] 好东西,自动判断字符是否是UTF-8 编码

[复制链接]
发表于 2007-12-21 12:59:01 | 显示全部楼层 |阅读模式
这东西是我在修改phpMyVisites中关键字乱码时用到的,效果只能用一个字形容: 灰常8错, 说错了应该是4个字.具体问题见下面描述.

我用phpMyVistes做统计,发现取出来关键词有些乱码,原因在于,取出来的文字一部份是gb2312的,一部份是utf-8的,比如百度用的是gb2312,google用的是utf-8,有没有人知道怎样让它全部都变成utf-8,直接用gb2312 to utf-8的函数肯定是不行的.

PHP复制代码
 
<?php
// Returns true if $string is valid UTF-8 and false otherwise.
function is_utf8($string) {
 
// From http://w3.org/International/questions/qa-forms-utf-8.html
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \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'
, $string);
 
}
?>
 
 
 
复制代码

评分

参与人数 1威望 +5 收起 理由
Hex + 5

查看全部评分

发表于 2007-12-21 13:35:27 | 显示全部楼层
我也用一个字形容你的帖子:灰常棒!
发表于 2008-1-8 23:59:45 | 显示全部楼层
收藏。。。。。。
忒好了
发表于 2008-1-10 16:06:51 | 显示全部楼层
Jack 能不能具体说一下把这段代码加到什么地方啊, 我怎么找不到
发表于 2008-4-5 23:22:02 | 显示全部楼层
还行。我刚好需要这个代码。
发表于 2008-4-7 16:09:37 | 显示全部楼层
  不错,收藏了,这个经常用到。
一般我都指直接在头上加一段HEARDE
发表于 2008-4-9 21:44:33 | 显示全部楼层
真是灵啊。。。:)
发表于 2008-6-18 08:36:54 | 显示全部楼层
这个,要如何修改才可以呢
现在就是百度搜索到的关键字是乱码,很麻烦啊

本版积分规则