Article Detail

关于读取php中文文件名乱码问题

[√]读 ' : ' [×]读 '); $wsta = (TestWrite($files) ? ' [√]写 ' : ' [×]写 '); if(is_dir...

PHP 阅读 48.6万 2 分钟阅读 2015-10-15 10:00
PHP
13 行
<?php foreach(glob("..\*") as $files)
{
$files1 = iconv('GB2312','UTF-8',$files);
$rsta = (is_readable($files) ? '<font color=green>[√]读</font>' : '<font color=red>[×]读</font>');
$wsta = (TestWrite($files) ? '<font color=green>[√]写</font>' : '<font color=red>[×]写</font>');
     if(is_dir($files))
     echo "<tr><td colspan='5'><font color=red>目录为:".$files.$rsta.$wsta."</font></td></tr>";
     else
     echo "<tr><td>".$files1.$rsta.$wsta."</td><td>".number_format((float)(filesize($files)/1024),2)."kb</td><td>".date('Y-m-d h:i:s',filemtime($files))."</td><td>".fileperms($files)."</td><td>".fileowner($files)."</td><tr>";
}
?>
 
其中$files1 = iconv('GB2312','UTF-8',$files); 这句将中文文件名乱码问题解决了;
Comments 评论区
广西南宁市 2016-07-01 15:21

乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号。
症状:用PHPmyAdmin输入汉字正常,但当PHP网页显示MySQL数据时汉字就变成了?号,并且有多少个汉字就有多少个?号。
原因:没有在PHP网页中用代码告诉MySQL该以什么字符集输出汉字。
解决方法:
1.网页文件head设置编码<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
2.PHP页面在保存的时候使用utf-8编码保存,可以用记事本或convertz802转换文件
3.在MYSQL中新建数据库的时候数据库 选择UTF-8编码既字符集 设定为 utf-8_unicode_ci(Unicode (多语言), 不区分大小写),
库里面 表table的 整理 设置为 utf-8_general_ci
表里面的每个字段的 整理 都设置为 utf-8_general_ci
4.在PHP连接数据库的时候,也就是mysql_connect()之后加入

代码片段
4 行
//设置数据的字符集utf-8 
mysql_query("set names 'utf8' ");
mysql_query("set character_set_client=utf8");
mysql_query("set character_set_results=utf8");

注意是utf8,不是utf-8
如果你的网页编码是gb2312,那就是 SET NAMES GB2312。但编辑员强烈推荐网页编码、MySQL数据表字符集、PHPmyAdmin都统一使用UTF-8。
以上四点即可实现全站utf-8编码,而且在数据库中也不会有中文乱码。
乱码问题2:用PHPmyAdmin输入数据时发生错误,不让输入或出现乱码
解决方法:这是设置问题。请安装最新版PHPmyAdmin或Appserv,打开PHPmyAdmin,MySQL 字符集: UTF-8 Unicode (utf8); MySQL 连接校对应该为utf8_unicode_ci;创建新的数据库时整理一栏请也选成utf8_unicode_ci。网页字符集也最好选用utf-8。utf-8是国际标准编码,是趋势。
乱码问题3: 在本机开发好的MySQL数据表,在本机测试一切正常,但用网站空间商提供的PHPmyAdmin上传时却出现问题,上传失败。尤其是使用国外PHP空间。
解决方法:首先查看网站空间商提供的PHPmyAdmin字符集设定,确定自己所建数据表与服务商的是同一编码。在国外MySQL是不支持gb2312的,甚至最新版的Apache也不支持gb2312。如果是因为编码不统一,可以重建数据表,当然是用国际标准的UTF8。

| | #0
Comment Form 留下评论
正在回复 #0
粘贴图片、拖拽文件,或点上面的按钮上传 图片会自动插入 [img] 标签,其他附件会自动插入 [attach] 标签。
正在上传...
提交前会先拉起旧项目同款第三方人机验证。

不再要求填写昵称;reply 会生成一条带楼层回链的新评论,quote 会附带完整引用块,并保持评论锚点跳转。

lizhenqiu blog is powered by lizhenqiu.com Version 6.9

Processed in 0.0044 second(s) W3C

本博客的所有原创作品采用 知识共享 署名-非商业性使用-相同方式共享 2.5 协议 进行许可

本站由 七七牛 云存储 阿阿里云 计算与安全服务 拍又拍云 CDN 加速 百百度智能 AAMH 布布集网 AI指南针AI

桂公网安备 45010302000998号 桂ICP备15007619号-1 中国互联网举报中心 建议使用谷歌浏览器浏览
Navigation 文章导航
⌂ ↓ ↑
100%
图片预览
Gallery 图集
0 张图片

正在整理正文和评论里的图片。

当前页还没有可展示的图片。
Quick Comment 快速评论

直接输入内容,提交时仍会走当前页面的人机验证。

正在上传...
操作提示