php写入txt乱码

php写入txt乱码

相信很多人在使用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编码的。

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

这就是为什么当文件没有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/2154681.html

(0)
上一篇 2025年2月25日 06:21:25
下一篇 2025年2月24日 23:39:35

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

相关推荐

  • php写入数据库乱码

    对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php mysql数据库连接时乱码解决方法。 MYSQL数据库使用UTF-8编码的问题1.用phpmyadmin创建数据库和数据表创建数据库的时候,请将“整理”设置为:“ut…

    2025年2月25日
    200
  • php写入文件不覆盖

    file_put_contents():向文件中写入内容并且不覆盖之前的内容。 步骤: 1、新建文件 2、声明要写入内容的文件 立即学习“PHP免费学习笔记(深入)”; 3、这个文件的内容如图 4、file_get_contents读出文件…

    2025年2月25日 编程技术
    200
  • php提供了什么来实现反射

    就算是类成员定义为private也可以在外部访问,不用创建类的实例也可以访问类的成员和方法。 PHP自5.0版本以后添加了反射机制,它提供了一套强大的反射API,允许你在PHP运行环境中,访问和使用类、方法、属性、参数和注释等,其功能十分强…

    2025年2月25日
    200
  • php探针如何利用

    话说我的网站就是用的win环境的虚拟主机,其实选主机还是要做的心中有数,不要被某些空间商忽悠了。所谓“无奸不商”这句话还是有它存在的意义,既然我们不能相信“天下无贼”,那俺们就只有提高警惕。 购买空间的童鞋应该都知道,在淘宝买空间的时候,那…

    2025年2月25日
    200
  • php探针不显示内存

    本文介绍下php探针代码不显示cpu、内存、硬盘等信息的原因与处理方法,在使用php探针时遇到的一些问题。 本节内容: php探针显示的cpu、内存、硬盘信息(推荐学习:PHP编程从入门到精通) 一般php探针不显示以上信息的原因如下: 立…

    2025年2月25日
    200
  • php算设计优秀的语言吗

    php真的是世界上最好的语言吗? 仔细看下去,你会发现这其实是一个梗,PHP非但很难说是最好的语言,甚至常年位于编程语言鄙视链的下游。(推荐学习:PHP编程从入门到精通) 诚然,PHP有自己的历史包袱,设计上有许多不合理之处,但它是为了快速…

    2025年2月25日
    200
  • php算跨平台吗

    跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不依赖硬件环境。 一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。相对而言如果某种计算机语言不用修改代码即可做到高度跨平台,那么此语言就越抽象,硬件控制力就越低,只适合…

    2025年2月25日
    200
  • php常用的算法有哪些

    php相关的基础算法有四个,分别是:冒泡排序法,快速排序法,选择排序法,插入排序法 1:冒泡排序法 介绍:(推荐学习:PHP编程从入门到精通) 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,依次比较两个元素,如果他们的顺序错误就…

    2025年2月25日
    200
  • php数组中怎么取值

    php数组 特点:可以存储任意类型的数据,可以不连续,可以是索引的也可以是关联的 什么是索引? 就是常见数组的样式,索引从开始,0,1,2,3,定义数组是直接往里面放值,只个索引自动生成,所以一般从0开始的,这样的数组是索引数组,索引是连续…

    2025年2月25日
    200
  • php数组在内存中如何存储

    数组定义(推荐学习:PHP编程从入门到精通) $arr[]=’a’; 1. 判断变量的类型,系统碰到变量有中括号,系统就认为这是一个数组,将在堆区开辟一块内存空间 2.给a在arr的内存空间,再开辟一个,将a存放到区域里。  立即学习“PH…

    2025年2月25日
    200

发表回复

登录后才能评论