php生成txt乱码

php生成txt乱码

前言

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

那么究其根本原因是什么呢?

一句话:缺少头部BOM(当然,这里指的肯定不是Js的Bom)

BOM

立即学习“PHP免费学习笔记(深入)”;

既然提到了BOM,那么可能有的同学不太了解这个家伙,这里我简单说一下,老鸟可以跳过。在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark)。

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

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

PS : 其实你可以将BOM理解成HTML中的charset属性和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视频教程

以上就是php生成txt乱码的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2153184.html

(0)
上一篇 2025年2月25日 06:00:02
下一篇 2025年2月18日 06:53:52

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php生成不重复字符串

    php生成不重复字符串 使用时间戳作为原始字符串,再随机生成五个字符随机插入任意位置,生成新的字符串,保证不重复。 代码如下: function rand($len)    {        $chars=’ABCDEFGHIJKLMNOP…

    2025年2月25日
    200
  • php生成二维码显示乱码

    乱码场景 解决方案 执行生成二维码的那句代码后die或exit一下就可以了: public function index()    {    Vendor(‘phpqrcode.phpqrcode’);    $url=”https://w…

    2025年2月25日
    200
  • php事务什么时候用

    在某些程序在执行的时候需要进行多个动作,而我们的业务要求是某个动作在执行错误的时候该进程所有的动作都不再执行,全部执行成功才算成功,否则就回到执行之前的状态,这就需要用到事务的处理。 原生: <?php $link = mysqli_…

    2025年2月25日
    200
  • php事务是什么

    php事务四大特性 事务就是一组原子性的SQL查询,或者说一个独立的工作单元。 原子性(Atomicity): 事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。 一致性(Consistemcy): 立即学习“PHP…

    2025年2月25日
    200
  • php是编译型语言还是解释型语言

    编译型语言 使用专门的编译器(类似于Windows下的Visual Studio)、针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行性程序(.exe)…

    2025年2月25日
    200
  • php如何管理内存

    内存管理一般会包括以下内容: 是否有足够的内存供我们的程序使用; 如何从足够可用的内存中获取部分内存; 对于使用后的内存,是否可以将其销毁并将其重新分配给其它程序使用。(推荐学习:PHP编程从入门到精通) 立即学习“PHP免费学习笔记(深入…

    2025年2月25日
    200
  • php如何管理进程

    进程管理-防止进程成为僵尸进程 创建好了进程,那么怎么对子进程进行管理呢? 使用信号,对子进程的管理,一般有两种情况:(推荐学习:PHP编程从入门到精通) posix_kill():此函数并不能顾名思义,它通过向子进程发送一个信号来操作子进…

    2025年2月25日
    200
  • php如何防止表单重复提交

    php防止表单重复提交 解决方案一:引入cookie机制来解决 提交页面代码如下a.php代码如下:(推荐学习:PHP编程从入门到精通) 登录后复制 Php代码 立即学习“PHP免费学习笔记(深入)”; 登录后复制 如上处理的缺点:如果客户…

    2025年2月25日
    200
  • php如何防止csrf攻击

    csrf概念:csrf跨站点请求伪造(cross—site request forgery),跟xss攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成…

    2025年2月25日
    200
  • php如何翻转字符串

    php翻转字符串,在一些面试题中经常会出现的考点。php中翻转字符串自带strrev()函数实现,也可以不使用php内置函数,自己用for循环配合mb_substr()或str_split()来实现同样的功能。 一、strrev()翻转字符…

    2025年2月25日
    200

发表回复

登录后才能评论