关于PHP中文路径,为啥不同机器上得到的结果不一样。

Brightzliu 2014-07-04 02:03:20
<?php
$dir = "d:\\你好";
$temp = base64_encode($dir);
$temp2 = base64_decode($temp);
echo $temp2 . '<br>';
$temp2 = mb_convert_encoding($temp2,"GBK","UTF-8");

if (is_readable($temp2))
{
echo "Access it !"; //Win8 上显示这个
}
else
{
echo "Can't access it"; //Xp上显示这个
}

?>
以上代码,在Win8上WAMP运行显示能 Access it, 在一个自己搭建的LAMP上,显示 Can't access it.

这个中文路径好折磨人,到底取决于那些因素呢?
...全文
170 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Brightzliu 2014-07-07
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
echo $s = base64_decode('ZDpc5L2g5aW9');
var_dump(mb_check_encoding($s, 'utf-8'));
d:\你好bool(true) 你的 $temp2 = mb_convert_encoding($temp2,"GBK","UTF-8"); 似乎没有生效嘛 英文XP 也是双字节操作系统,接受 ucs-2 的中文文件名应该是没有问题的,对 gbk 或 utf-8 可能是会有问题的
对啊,但是在另外 一个机器上,没问题,好奇怪!
xuzuning 2014-07-07
  • 打赏
  • 举报
回复
echo $s = base64_decode('ZDpc5L2g5aW9');
var_dump(mb_check_encoding($s, 'utf-8'));
d:\你好bool(true) 你的 $temp2 = mb_convert_encoding($temp2,"GBK","UTF-8"); 似乎没有生效嘛 英文XP 也是双字节操作系统,接受 ucs-2 的中文文件名应该是没有问题的,对 gbk 或 utf-8 可能是会有问题的
Brightzliu 2014-07-07
  • 打赏
  • 举报
回复
引用 7 楼 t_z_x__ 的回复:
文件名一般都不用中文的,数字或英文字母组合都行。因为你电脑的操作系统编码格式都不一定一致。如果一定要用中文,文件夹一定要自己用代码创建,并设置编码 格式。读取也用一样的编码格式
嗯,我也知道文件名尽量不用中文。。 但是有个需求就是根据表里面数据来建立文件夹,这个数据都是中文的。 自己创建文件夹和代码创建有啥区别么?
Brightzliu 2014-07-07
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
你把最后的 $temp2 贴出来看看 echo base64_encode($temp2); 贴出结果
引用 6 楼 xuzuning 的回复:
你把最后的 $temp2 贴出来看看 echo base64_encode($temp2); 贴出结果
结果是: ZDpc5L2g5aW9 另外我测试的机器是 XP 英文版本。
xuzuning 2014-07-05
  • 打赏
  • 举报
回复
你把最后的 $temp2 贴出来看看 echo base64_encode($temp2); 贴出结果
t_z_x__ 2014-07-05
  • 打赏
  • 举报
回复
文件名一般都不用中文的,数字或英文字母组合都行。因为你电脑的操作系统编码格式都不一定一致。如果一定要用中文,文件夹一定要自己用代码创建,并设置编码 格式。读取也用一样的编码格式
Brightzliu 2014-07-04
  • 打赏
  • 举报
回复
你们都可以为啥我这里就不行呢。另外,你们用的什么编辑器啊?
傲雪星枫 2014-07-04
  • 打赏
  • 举报
回复
在win8 與 xp測試過,可以啊。
xuzuning 2014-07-04
  • 打赏
  • 举报
回复
我也是在 XP 下调试,并没有发现你说的问题
Brightzliu 2014-07-04
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
显示 Can't access it 就表示 d:\你好 不存在
可是我这个文件夹创建出来了啊。
xuzuning 2014-07-04
  • 打赏
  • 举报
回复
显示 Can't access it 就表示 d:\你好 不存在

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧