php如何使用powershell在windows上输出阿拉伯语字符

php如何使用powershell在windows上输出阿拉伯语字符,php,moodle,Php,Moodle,我有下面的PHP脚本 <?php header('Content-Type: text/html; charset=utf-8'); $file = "//192.168.10.206/wwwroot/SABIS CORPORATE/PrepList/Documents/41/1516 Level I Arabic Basic Questions and Answers T1 الأسلوب الخبري.pdf"; echo $file; ?> 我尝试了UT8编码 iconv

我有下面的PHP脚本

<?php
header('Content-Type: text/html; charset=utf-8');
$file = "//192.168.10.206/wwwroot/SABIS CORPORATE/PrepList/Documents/41/1516 Level I Arabic Basic Questions and Answers T1 الأسلوب الخبري.pdf"; 
echo $file; 
?>
我尝试了UT8编码

iconv("unicode", "utf-8", $file);    
iconv("Latin1_General_CI_AS","utf-8",$file); 
iconv("Arabic_CI_AS","utf-8",$file); 
base64_encode($file); 
utf8_encode($file);     
base64_decode($file); 
utf8_decode($file);  
iconv('WINDOWS-1256', 'UTF-8', $file);   
iconv('cp1256', 'UTF-8', $file);

似乎什么都不起作用,我不断得到错误的文本我需要得到文本来检查文件是否存在…

确保文件系统的编码与PHP代码中包含文件名的字符串的编码相同

否则,您将测试是否存在错误的文件

例如,如果文件系统不支持UTF-8,但文件名以UTF-8编码。在使用Windows时,值得注意的是Windows文件系统(FAT、FAT32、NTFS)不支持UTF-8。您可以像这样将文件名转换为UTF-16

$newName = mb_convert_encoding('your file path', 'UTF-16', 'UTF-8');
如果不起作用,可以使用
urlencode
。从urlencode返回的所有字符在文件名(NTFS/HFS/UNIX)中都有效

请尝试以下代码以了解文件是否存在:

if (file_exists('your file path')) {   
//file exists;                         
}
else
{
//Does not exist
}

echo文件_存在(“您的_文件名”)//1 9 2。1 6 8 . 1 0 . 2 0 6/w w r o o t/S A B I S C o r P o r A t E/P r E P L I S t/D o C u m E t S/4 1/1 5 1 6 L E v E L A r A B I C B A S I C Q u S t S A n D A n S w r S t 1♠'♠D♠#♠3.♠D♠H♠(  ♠'♠D♠.♠(♠1.♠J.p d fPHP警告:文件_存在()参数1应为有效路径,字符串以C:\Users\aao un\Desktop\Test-AAA.php在第6行中给出。如果我打开url,我可以找到文件,@user5514667您可以在问题中添加如何使用此方法的实现吗?如果文件名不包含阿拉伯字母,结果将为True是,这在编码文件路径时发生与文件系统的编码不同。这会返回错误的路径,从而导致错误的结果。您使用什么文件系统?NTFS或FAT32?
$newName = urlencode($file);
if (file_exists('your file path')) {   
//file exists;                         
}
else
{
//Does not exist
}