php fgets乱码的处理办法:起首顺次点击“菜单修正->页面属性->标题/编码”;然后在编码里挑选“简体中文”;接着点击“从新载入”肯定;末了从新运用“fgets”函数读取文件即可。
引荐:《PHP视频教程》
php读取txt文件中文乱码处理要领
1:假如翻开的页面有乱码,别急,先不要做任何编辑,牢记
2:然后点击菜单修正-》页面属性-》标题/编码
3:在编码里挑选 简体中文(gb2321)
4:点击 从新载入-》肯定
新建一个记事本,不是写字板,然后将谁人要读取的文件悉数复制到这个记事本文件中,保留,再用以下代码读取谁人记事本文件1303275.txt,发明当网页编码为gb2312时悉数一般显现,改成utf8编码后,数字一般,汉字为乱码,这也属于一般.
$file = fopen("1303275.txt","r");//只读体式格局翻开文本文件
while(! feof($file))//当文件不完毕
{
$line=fgets($file);//读一行到$line变量
echo $line."
";
}
fclose($file);//封闭文本文件
?>
上面的要领比较笨但也处理问题,下面我供应一个不管什么txt文本都不会乱的处理要领,代码以下:
/*
@params $str 输入字符 $type 所需猎取编码
@author 长行
*/
function autoiconv($str,$type = "gb2312//ignore"){
$utf32_big_endian_bom = chr(0x00) . chr(0x00) . chr(0xfe) . chr(0xff);
$utf32_little_endian_bom = chr(0xff) . chr(0xfe) . chr(0x00) . chr(0x00);
$utf16_big_endian_bom = chr(0xfe) . chr(0xff);
$utf16_little_endian_bom = chr(0xff) . chr(0xfe);
$utf8_bom = chr(0xef) . chr(0xbb) . chr(0xbf);
$first2 = substr($str, 0, 2);
$first3 = substr($str, 0, 3);
$first4 = substr($str, 0, 3);
if ($first3 == $utf8_bom) $icon = 'utf-8';
elseif ($first4 == $utf32_big_endian_bom) $icon = 'utf-32be';
elseif ($first4 == $utf32_little_endian_bom) $icon = 'utf-32le';
elseif ($first2 == $utf16_big_endian_bom) $icon = 'utf-16be';
elseif ($first2 == $utf16_little_endian_bom) $icon = 'utf-16le';
else { $icon = 'ascii'; return $str;}
return iconv($icon,$type,$str);
}
以上就是怎样处理php fgets读取文件乱码的问题的细致内容,更多请关注ki4网别的相干文章!
收藏 | 0