网页编码有很多种,入UTF-8和GB2312,如果在编码为GB2312的页面上显示UTF-8的中文文字,肯定会是乱码,这常常出现在读取其它网页的标题或者rss。解决办法是读取完后在处理前先判断是什么编码,然后转换为需要的编码,php中有个函数叫mb_detect_encoding() ,可以判断字符串是什么编码。
看看php手册中的解释:
mb_detect_encoding
mb_detect_encoding — Detect character encoding
Description
string mb_detect_encoding ( string str [, mixed encoding_list [, bool strict]] )
mb_detect_encoding() detects character encoding in string str. It returns detected character encoding.
encoding_list is list of character encoding. Encoding order may be specified by array or comma separated list string.
If encoding_list is omitted, detect_order is used.
这样,如果$str的编码为UTF-8,要转换为GB2312,可以用 $str=iconv(‘utf-8′,’gb2312’,$str) ,这样,$str的编码就为GB2312了。
<?php
}
|