PHP读取文件乱码问题
<head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>无标题文档</...
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<?php
$filename="test.txt";
if(!file_exists($filename)){
$fp=fopen($filename,"w");
fwrite($fp,"我们的祖国是人们的");
fclose($fp);
}
$fp=fopen($filename,"r");
print("<p>\n");
while(($char=fgetc($fp))!==false){
printf("%d.%s",ftell($fp)/3+1,$char);
fseek($fp,3,SEEK_CUR);
}
?>
</body>
</html>调试出现乱码,printf("%d.%s",ftell($fp)/3+1,$char);分开写成
printf("%d",ftell($fp)/3+1);和printf("%s",$char);就没有出现乱码。合在一起就有乱码了,请问怎样修改才能解决问题呢,我需要的结果是1我2们3的....... 展开
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<?php
$filename="test.txt";
if(!file_exists($filename)){
$fp=fopen($filename,"w");
fwrite($fp,"我们的祖国是人们的");
fclose($fp);
}
$fp=fopen($filename,"r");
print("<p>\n");
while(($char=fgetc($fp))!==false){
printf("%d.%s",ftell($fp)/3+1,$char);
fseek($fp,3,SEEK_CUR);
}
?>
</body>
</html>调试出现乱码,printf("%d.%s",ftell($fp)/3+1,$char);分开写成
printf("%d",ftell($fp)/3+1);和printf("%s",$char);就没有出现乱码。合在一起就有乱码了,请问怎样修改才能解决问题呢,我需要的结果是1我2们3的....... 展开
2个回答
展开全部
1.fgetc($fp) 取得是单字节的,中文可能的根据编码可能有2 3 4字节,所以不管怎么输出肯定都会是乱码。
解决方法
1.修改php文件的编码为utf-8, 只有这样保存到test.txt文件里的文件才会是utf-8 大部分中文就都是按照3个字节
2.$fp=fopen($filename,"r");
while(($char=fread($fp,3))!==''){
printf("%d.%s",ftell($fp)/3,$char);
}
解决方法
1.修改php文件的编码为utf-8, 只有这样保存到test.txt文件里的文件才会是utf-8 大部分中文就都是按照3个字节
2.$fp=fopen($filename,"r");
while(($char=fread($fp,3))!==''){
printf("%d.%s",ftell($fp)/3,$char);
}
追问
谢谢。解决问题了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先查看下TXT文档是UTF8的吗?估计是这里问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询