>  기사  >  백엔드 개발  >  php file_get_contents 的乱码有关问题

php file_get_contents 的乱码有关问题

WBOY
WBOY원래의
2016-06-13 13:40:031540검색

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);

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.