Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mkdir UTF-8文件名_Php - Fatal编程技术网

Php mkdir UTF-8文件名

Php mkdir UTF-8文件名,php,Php,我对mkdir 我在windows上使用xampp,当我尝试创建目录时,它返回的结果与示例中的不一样 mkdir(JPATH_SITE.'/images/projects/'.$region_folder.'/'.$project_folder, 0777, true); 应该返回类似于 /images/projects/Ленинградская_область/Ленинградская_область_1 但是创建一个目录,如: /images/projects/ЛенинР

我对
mkdir

我在
windows
上使用
xampp
,当我尝试创建
目录
时,它返回的结果与示例中的不一样

mkdir(JPATH_SITE.'/images/projects/'.$region_folder.'/'.$project_folder, 0777, true);
应该返回类似于

/images/projects/Ленинградская_область/Ленинградская_область_1
但是创建一个
目录
,如:

/images/projects/Ленинградская_область/Ленинградская_область_1

是关于编码的?或者与操作系统有关?

Windows文件名不是用utf8编码的,而是用
Windows-1252
Windows-1251
或类似的东西编码的

试试这个:

$dirname = JPATH_SITE.'/images/projects/'.$region_folder.'/'.$project_folder;
//replace "UTF-8" with the respective input charset, if it is not utf8
$dirname = iconv("UTF-8","Windows-1252",$dirname);
mkdir($dirname, 0777, true);

//if this doesnt work, try another charset like this:
$dirname = iconv("UTF-8","Windows-1251",$dirname);

//you can also use iconv on your russian variables only
//remember that you might need to change UTF-8 to another input charset
$region_folder = iconv("UTF-8","Windows-1251",$region_folder);
$project_folder = iconv("UTF-8","Windows-1251",$project_folder);
请在此处阅读有关iconv的更多信息:


检测字符集编码也很有用:

事实上,仅适用于$region\u folder=iconv(“UTF-8”、“Windows-1251”、“$region\u folder”)$project_folder=iconv(“UTF-8”、“Windows-1251”、“$project_folder”);够了!谢谢你