直接上代码吧,有如下几种情况,读取的文件test.txt的内容,test.txt内容就是一句中文字符串:一点滴水啊
$homepage = file_get_contents('test.txt');
$homepage = mb_convert_encoding($homepage, "UTF-8","GBK"); //编码转换为utf-8防止乱码
echo $homepage;
输出结果:一点滴水啊
现在修改第一句代码,其他不变
$homepage = file_get_contents('test.txt',NULL,NULL,0,1); //结果什么都没有
$homepage = file_get_contents('test.txt',NULL,NULL,0,2); //结果是:一
$homepage = file_get_contents('test.txt',NULL,NULL,0,3); //结果是:一
$homepage = file_get_contents('test.txt',NULL,NULL,0,4); //结果是:一点
$homepage = file_get_contents('test.txt',NULL,NULL,0,5); //结果是:一点
$homepage = file_get_contents('test.txt',NULL,NULL,0,6); //结果是:一点滴
现在迷惑的是最后2个参数的意义是什么?怎么出来的结果是一头雾水?如果是英文字符串我理解的,最后一个参数是长度还是字节数?在我的代码下貌似不管是长度还是字节数(中文在utf8下是3个字节,而且已经确定我的编码是utf8的)都对应不上结果.
。。。。
是将编码从
GBK
转成UTF-8
,转换后正常输出,说明原先编码绝不是UTF-8
下面才是
UTF-8
的输出结果