Home  >  Article  >  Backend Development  >  php file_get_contents 的乱码有关问题

php file_get_contents 的乱码有关问题

WBOY
WBOYOriginal
2016-06-13 13:40:031521browse

php file_get_contents 的乱码问题
我的网站PHP文件是utf-8格式的,希望file_get_contents读取的一个网站却是gb2312格式的,因此显示出现乱码。详细情况如下:

gb2312格式包含utf-8格式乱码

网站有很多PHP文件,解决乱码问题,我是打算只把读取网页的这个PHP文件改为gb2312格式,其他的保留utf-8格式。但是因为这个文件又包含有其他的PHP文件,而包含的文件又包含了另外的几个文件……

另外一个解决思路是:把file_get_contents得到的内容用iconv转化为utf-8格式,但是css文件却还是没有改变,同时,可能是部分网页包含特殊符号,编码转化造成丢失,部分网页只得到一段。

请教各位解决思路……

------解决方案--------------------
在转编码是有些iconv()函数不能转换的字符,你可以用mb_convert_encoding()函数去转换
------解决方案--------------------
用你第二种解决方式会好一些,一般用iconv转换后,网页内容是正常的,不会出现乱码的情况

iconv("GB2312","UTF-8//TRANSLIT ",$data) ;
iconv("GB2312","UTF-8//IGNORE",$data) ;

第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。


或者用GBK来代替gb2312试下,
iconv("GBK","UTF-8",$data);

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn