PHP读取中文名称文件乱码,无法读取文件内容

发布于 旅游 2024-06-29
18个回答
  1. 匿名用户2024-01-30

    如果您的 PHP 文件在 WIN 下运行并且您的 PHP 文件是 UTF-8 编码,就会发生这种情况!

    原因是在win操作系统下,文件或文件夹的名称是用GBK或GB2312编码的!

    而且中文有编码差异,gb2312,一个中文是2个字节,一个中文是2个字节,一个中文是3个字节,这个区别,那么你的php**肯定看不懂中文名称文件!

    解决方法是:

    首先,PHP 文件以 GB2312 编码。

    其次,尝试将中文名称转换为GB2312编码,例如,如下**:

    fn = fopen( mb_convert_encoding('创建新的文本文档。 txt', 'gb2312', 'utf-8'), 'rt');

    实际上,个人更喜欢使用文件 get contents() 函数!

    此函数比使用 fopen 函数更简洁。

    例外题外话:中文汉字(包括中文标点符号)在每种编码下都不一样,虽然不管是什么编码,你用眼睛看,都是一样的,但对于计算机来说就不一样了,电脑本身处理不了中文,它必须将中文转换成字节或其他基础数据,这样才能处理。 所以编码不同,中文的效果也不同!

    还有英文字母和数字,编码没有问题!

    通常,除非有特殊需要,否则使用中文命名文件名或目录名是禁忌! 一般也没有人这样做!

  2. 匿名用户2024-01-29

    编码。

    您需要转换中文目录或文件名的编码。

    使用 mb convert 编码进行转换。

  3. 匿名用户2024-01-28

    大多数编程语言不支持中文名称,建议改成英文名称,如果你觉得不是所有的文件都是英文的,我会告诉你一个方法,上传时重命名文件,通常用时间戳命名。 同时,读取原始文件名并将其写入数据库进行注释。 数据库中有两个字段放置文件名,一个是中文注释,这是原始中文名称。

    第二个是修改后的文件名。 当程序需要读取文件**时,请使用修改后的文件名。 当您需要显示中文名称时,您可以获取注释字段。

    如果您有大量带有中文名称的文件,那么您需要等待重大更改。 即使现在没有问题,但当它出错时,你不知道如何改变它。

  4. 匿名用户2024-01-27

    php 文件不能是中文名称。

  5. 匿名用户2024-01-26

    窗口是用GB2312编码的,你的PHP文件应该是UTF-8的,所以在你写的时候,你需要转换编码$dir=iconv("utf-8","gb2312",$dir);

    但别忘了,您使用的是 UTF-8 编码,因此您在第 6 行犯了一个错误,将 GB2312 转换为 UTF-8。

  6. 匿名用户2024-01-25

    如果中文文件名是乱码,则表示您的标题标题未设置为字符编码。

  7. 匿名用户2024-01-24

    更改文件 UTF-8 的编码格式

  8. 匿名用户2024-01-23

    应该是你**写错了位置,你去掉了html结构就放PHP试试。。

    我已经测试过了,是的,饼干是这样的。 在他之上没有别的东西。

  9. 匿名用户2024-01-22

    你必须知道你的中文文本文件使用的编码方法,默认可能是Windows-1252(ANSI),出现乱码的原因是文本文件的编码与浏览器页面字符集指定的编码不一致,你可以在输出前对内容执行$content = iconv()'文本文件的编码格式,例如 Windows-1252', '浏览器字符集,例如 UTF-8'$content)上线。

  10. 匿名用户2024-01-21

    fgets() 是读取一行。

    feof() 用于确定是否已到达文件末尾。

    while() 是一个循环,它继续读取每一行以回声,然后到达文件末尾,并显示输出。

  11. 匿名用户2024-01-20

    还有 1 个。

    2 文件名不应为中文。

  12. 匿名用户2024-01-19

    采集是单字节的,根据编码,可能的中文可能有 2 3 4 个字节,所以无论输出如何肯定是乱码。

    分辨率。 1.将 php 文件的编码更改为 UTF-8,只有这样保存到文件中的文件才会是 UTF-8 大多数中文都是基于 3 个字节的。

    2.$fp=fopen($filename,"r");

    while(($char=fread($fp,3))!=='')

  13. 匿名用户2024-01-18

    首先检查:txt 文件是 UTF8 吗? 可能是这里的问题。

  14. 匿名用户2024-01-17

    几乎没有人用中文命名**文件...... 至于你的原因,字符编码不同,文件的字符可以转换为下一个代码。

  15. 匿名用户2024-01-16

    乱码,表示您的文件编码和浏览器编码不一致。

  16. 匿名用户2024-01-15

    这是一个编码问题,改变编码。

  17. 匿名用户2024-01-14

    统一编码是解决方案(99%解决了),如果你使用的编码与系统统一,它仍然是乱码,强制转换它。

    if(mkdir(iconv('utf-8', 'gbk', "我的名字")))

  18. 匿名用户2024-01-13

    这是一个数据库编码问题。

    构建数据库时使用 UTF8 字符集。

    在网页中阅读时,请在查询之前运行此命令。

    mysql_query("set names 'gb2312'")

相关回答
3个回答2024-06-29

jiawei chen。把名字放在前面,把姓氏放在后面。 >>>More

18个回答2024-06-29

蓝秀的中文名称是:蓝秀。 希望!

5个回答2024-06-29

液晶电视连接wifi可分为以下两种情况:

1.如果家里的电视是网络智能电视(内置网卡),可以在网络设置中扫描无线网络。 >>>More

6个回答2024-06-29

我的母亲,唉! 太多了! 我怎么能告诉你! 没有积分!

16个回答2024-06-29

为什么要匿名询问? 基本上,我不问匿名问题,我习惯了提问,今天是个特例,我总是跳出来,你寻求帮助。 >>>More