首页 > 作文

php写入txt乱码的解决方法

更新时间:2023-04-08 07:39:58 阅读: 评论:0

相信很多人在使用php的过程中都遇到过生成文件乱码的情况,不论是使用fwrite还是file_put_contents写入。可能你会先尝试从编码入手尝试解决,但最终的结果往往是不理想的,尽管我们都将其转换为了utf-8编码了…

那么究其根本原因是什么呢?就是缺少头部bom(当然,这里指的肯定不是js的bom)可爱的符号。

bom

既然提到了bom,那原始英文么可能有的同学不太了解这个家伙,这里我简单说一下,老鸟可以跳过。在windows下用记事本之类的程序将文本文件保存为utf-8格式时,记事本会在文件头前面加上几个不可见的字符(ef bb bf),就是所谓的bom(byte order mark)。

不仅限于 记事本保存的文件,只要在文件的开口包含了“ef bb bf” 几个不芽的词语可见的字符(十六进制应该是是xefxbbxbf,用二进制编辑文件可见)中国男体。这像是一个约定俗成的东西,当系统看到这玩意的时候,就会觉得你这个文件是utf-8编码的。

这就是为什么当文件没有bom时,你给用户地线的作用呈现的文件就可能是乱码的原因了。

ps : 其实你可以将bom理解成html中的chart属性和xml中的encoding属性,就是起一个标识作用。

解决办法

那么如何在php中输出bom呢?

答案是在所有内容输出之前输出:

print(chr(0xef).chr(0xbb).chr(0xbf));

当然,如果你是在生成文件,可能是下面两种:

fwrite($file, chr(0xef).chr(0xbb).chr(0xbf));file_put_contents($file, chr(0xef).chr(0xbb).chr(0xbf));

以上就是php写入txt乱码的详细内容,感谢大家对www.887551.com的支持。

本文发布于:2023-04-08 07:39:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/5138fd026be5d6302462294d1b0b7695.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php写入txt乱码的解决方法.doc

本文 PDF 下载地址:php写入txt乱码的解决方法.pdf

标签:文件   乱码   几个   是在
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图