php无法读取txt文件(php写入txt乱码的解决方法)
类别:编程学习 浏览量:1482
时间:2021-11-03 12:39:07 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编码的。
这就是为什么当文件没有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写入txt乱码的详细内容,感谢大家对开心学习网的支持。
原文链接:https://www.php.cn/php-ask-430343.html
您可能感兴趣
- php异常和错误区别(PHP批斗大会之缺失的异常详解)
- php如何建立一个网站(PHP利用DWZ.CN服务生成短网址)
- php面向对象3大特征(PHP面向对象程序设计重载overloading操作详解)
- php怎么弄不重复字符串(PHP中将一个字符串部分字符用星号*替代隐藏的实现代码)
- phplaravel开发规范(Laravel解决nesting level错误和隐藏index.php的问题)
- php7.4编译安装(PHP7.3.10编译安装教程)
- phpredis使用场景(php和redis实现秒杀活动的流程)
- php面向对象final怎么设置(PHP面向对象程序设计中的self、static、parent关键字用法分析)
- php的模块加载(PHP中的自动加载操作实现方法详解)
- php防session劫持(使用SMB共享来绕过php远程文件包含的限制执行RFI的利用)
- php创建文件(php创建多级目录与级联删除文件的方法示例)
- thinkphp框架案例(thinkphp5.1框架容器与依赖注入实例分析)
- php中的内置函数(php7下的filesize函数)
- php最好的探针(php探针不显示内存解决方法)
- ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解(ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解)
- php调试用什么工具好(调试php程序的简单步骤)
- 《小敏家》金波想要复婚 这只是他圈套的第1步,更可恶的在后面(小敏家金波想要复婚)
- 小敏家 剧情离谱一锅乱炖,但他们俩绝对是这部剧的一大 亮点(剧情离谱一锅乱炖)
- 《倚天屠龙记》再遭翻拍,关晓彤主演赵敏,蒋劲夫演张无忌,你怎么看(倚天屠龙记再遭翻拍)
- 吴启华与曾舜晞两代张无忌同框,戏里经典的他却没活出原著的潇洒(吴启华与曾舜晞两代张无忌同框)
- 经常发这三种 朋友圈 的人,要迅速屏蔽(经常发这三种朋友圈)
- 有种尴尬叫朋友圈忘屏蔽,大学生上演社死现场,父母亲自下场吐槽(有种尴尬叫朋友圈忘屏蔽)
热门推荐
- mysql 性能调优技巧(4 款 MySQL 调优工具,公司大神都在用!)
- css3导航菜单(CSS3实现的侧滑菜单)
- python控制流实例(如何用C代码给Python写扩展库Cython)
- pythonprint什么意思啊(Python中print和return的作用及区别解析)
- cssdisplay覆盖规律(css解决display:inline-block;产生的缝隙间隙的方法)
- pandas数据分组使用方法(在Pandas中DataFrame数据合并,连接concat,merge,join的实例)
- sqlserver设置自动备份的注意事项(SQL server 定时自动备份数据库的图文方法)
- dede执行查询语句(dede搜索关键字/tag标签不能区分大写字母的临时解决方法)
- dede模板栏目调用(织梦DEDECMS5.7栏目列表页分页URL优化列表页重复的解决方案)
- docker无法启动内存不足(解决docker磁盘空间不足问题)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9