截取网站标题 转码

我的php页面是utf8编码,从gb2312网页上截取<title>中的内容时返回的都是乱码,请问有什么解决方法吗.另外右能够测出文字是什么编码的函数吗,mb_detect_encoding返回的都是utf8

作者: i_cewating   发布时间: 2011-06-08

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )
或者iconv()

作者: jordan102   发布时间: 2011-06-08

转换就用楼上的办法。判断编码你获取的都是网页吧,像浏览器都是用这种方式判断:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 

获取 meta 标签,然后检测后面的 charset 后面的就是网页编码了,当然这个编码一般情况下都是对的,不对的话就是有些做网站的编码写错了(一般不会,因为编码写错了,浏览器打开那么网页也就因为编码识别不对而乱码了,没有网站编写者那么傻)

作者: yunbookf   发布时间: 2011-06-08

手册中说得很明白了
string mb_detect_encoding ( string str [, mixed encoding_list [, bool strict]] )

If encoding_list is omitted, detect_order is used. 
如果缺省 encoding_list 则按 mb_ detect_order 给出的检测顺序进行检测
而默认的 mb_detect_order 是
Array
(
  [0] => ASCII
  [1] => UTF-8
)
所以他不可能检测到 gb2312

你至少需要
$charset = mb_detect_encoding($string, array('ASCII', 'UTF-8', 'GBK'));
来取得串的语言编码

作者: xuzuning   发布时间: 2011-06-08