时间:2021-07-01 10:21:17 帮助过:11人阅读
其实不建议使用中文目录路径。
把GB2312改为GBK试试。
操作系统字符集
Winodws GBK
Linux UTF-8
当网页字符集与操作系统字符集相同时,文件名就不需转码
如果我开发一个PHP的通用模版,怎么办,还要判断 系统集?
是的,既然是通用的,那么就要针对不同的环境做出相应的应对
不能把问题留给用户
比如你的中文文件名问题,就不应该简单的 $dir=iconv('UTF-8','GB2312',$dir);
而可以这样:
在配置文件中写到
define('APP_CHARSET', 'UTF-8');
define('OS_CHARSET', substr(PHP_OS, 0, 3) == 'WIN' ? 'GBK' : 'UTF-8');
这样 $dir=iconv('UTF-8','GB2312',$dir);
写作 $dir=iconv('APP_CHARSET, OS_CHARSET, $dir);
就通用化了
还可进一步
function lang(&$str) {
return $str = iconv('APP_CHARSET, OS_CHARSET, $str);
}
程序中
lang($dir);
$path = lang($dir);
都可以