php+fread()乱码是因为输出页面的编码和被读文件的编码不一致,其解决办法:1、打开相应的PHP文件;2、通过fread函数读取文件;3、通过“iconv('gbk', 'utf-8', $data)”方法将读取的内容转码即可。
本教程操作环境:Windows10系统、PHP8.1版、DELL G3电脑
php+fread()乱码怎么办?
php中,通过fread函数直接读取文件,文件内容如果遇到中文则会出现乱码问题,这个该如何去解决?
可能是输出页面的编码和被读文件的编码不一致。
解决办法:
读出来以后把内容转码试试
iconv('gbk', 'utf-8', $data)
相关介绍:
iconv
(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)
iconv — 字符串按要求的字符编码来转换
说明
iconv(string $in_charset, string $out_charset, string $str): string
将字符串 str 从 in_charset 转换编码到 out_charset。
参数
in_charset
输入的字符集。
out_charset
输出的字符集。
如果你在 out_charset 后添加了字符串 //TRANSLIT,将启用转写(transliteration)功能。这个意思是,当一个字符不能被目标字符集所表示时,它可以通过一个或多个形似的字符来近似表达。 如果你添加了字符串 //IGNORE,不能以目标字符集表达的字符将被默默丢弃。 否则,会导致一个 E_NOTICE并返回 false。
警告
//TRANSLIT 运行细节高度依赖于系统的 iconv() 实现(参见 ICONV_IMPL)。 据悉,某些系统上的实现会直接忽略 //TRANSLIT,所以转换也有可能失败,out_charset 会是不合格的。
str
要转换的字符串。
返回值
返回转换后的字符串, 或者在失败时返回 false。
fread()
fread() 函数读取打开的文件。
函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。
该函数返回读取的字符串,如果失败则返回 FALSE。
语法
string fread ( resource $handle , int $length )
参数
handle 文件系统指针,是典型地由 fopen() 创建的 resource(资源)。
length 必需。规定要读取的最大字节数。
推荐学习:《PHP视频教程》
以上是php+fread()乱码怎么办的详细内容。更多信息请关注PHP中文网其他相关文章!