返回信息流我在Windows+IIS下使用PSad编辑,用的UTF-8编码, 为啥is_readable无法读取带有中文的路径。这个路径是存在的。
<?php
header("Content-type: text/html; charset=utf-8");
$dir1='aa/bb/attachment/BJ_上海_cc/Lesson2/'; //is_readable无法识别此路径
var_dump($dir1);
//echo mb_convert_encoding($dir1, "UTF-8"); 这行加了也没有用
if(is_readable($dir1))
{
echo "I can access <br>";
}
else
{
echo "I can't access it <br>";
}
$dir2='aa/bb/attachment/BJ_IBM_cc/Lesson2/';
var_dump($dir2);
if(is_readable($dir2))
{
echo "I can access it<br>";
}
else
{
echo "I can't access it <br>";
}
?>
输出结果为:
string 'aa/bb/attachment/BJ_上海_cc/Lesson2/' (length=57)
I can't access it
string 'aa/bb/attachment/BJ_IBM_cc/Lesson2/' (length=54)
I can access it
这是一条镜像帖。来源:北邮人论坛 / www-technology / #26044同步于 2014/6/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
[问题]PHP is_readable无法读取带有中文的路径
youziboy
2014/6/9镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
自己给自己回复一下。
添加了一行 $dir1= mb_convert_encoding($dir1, "GBK","UTF-8");
就可以了。
后来发现is_readable 传入的参数为需要为GBK的字符集。但不知道为啥 is_readable为啥不接受UTF-8的中文字符。
类似这样的还有is_dir
windows 文件系统GBK编码,改不了么?
以前就知道乱码原因是 页面编码 Mysql编码 连接器编码 不匹配导致的。还有和操作系统编码有关系啊。。。
【 在 wp 的大作中提到: 】
: 原因很简单,因为windows下的文件系统,是gbk编码的,当然要用gbk路径才能访问
: 换linux试试吧
用linux吧,正经想学的话
跑php的环境基本都是linux
【 在 youziboy 的大作中提到: 】
: windows 文件系统GBK编码,改不了么?
: 以前就知道乱码原因是 页面编码 Mysql编码 连接器编码 不匹配导致的。还有和操作系统编码有关系啊。。。
:
历史原因,有个客户一直在Windows上,没办法。
【 在 wp 的大作中提到: 】
: 用linux吧,正经想学的话
: 跑php的环境基本都是linux
: