我使用aria2使用XML_RPC进行下载,当我想在php中下载这样的下载时:
$client->aria2_addUri( array($url), array("dir"=>'/home/amir/دانلود') );它将创建一个名为“دانلود”的文件夹,而不是。我发布了一个相关的在aria2论坛上发布。他们还说,如果用utf-8将字符串发送给aria2,那么aria2没有问题。
因此,我使用utf-8头并将字符串转换为utf-8,但它不工作:
header('Content-type:application/json; charset=utf-8');
$dir_on_server = mb_convert_encoding($dir_on_server, 'UTF-8');你认为如何?
发布于 2013-11-07 07:33:38
尝试通过浏览器访问文件或文件夹。通过编写一个..htaccess文件的内容“选项索引”,以便显示您的文件夹。(我甚至可以通过http访问它们)
我通过编写脚本创建了多个文件和文件夹,其中GET值文件或文件夹确定了文件夹或文件的名称,我尝试使用日语和阿拉伯字符。尽管它们不会在FTP中正确显示(在我的例子中,只有文件名:“?”)如果您按脚本读取它们,则它们将正确显示。
问题可能在您用来访问FTP的程序中,例如,WinSCP默认情况下在“自动”上有UTF-8,因此强制它可能会解决问题。(虽然我不得不承认,它不是在我这边工作,但也许我的linux服务器不支持utf-8文件名,这对您来说也是一个问题)
另外,也要确保您的php-文件是在UTF-8中编码(保存)的,而没有BOM,因为您使用的是一个常量的utf-8字符串。
编辑:如果您仍然打算使用mb_convert_encoding,最好添加可选参数"from_encoding“。我在一个SHIFT-JIS编码文件中用日语测试了这一点:
$text = "A strange string to pass, maybe with some 日本語の characters.";
echo mb_convert_encoding($text, 'UTF-8');虽然我的浏览器已经激活了UTF-8,但是它没有正确显示,所以当它试图检测编码时,它似乎并不总是正确的。
例如,这对我来说是可行的:
$text = "A strange string to pass, maybe with some 日本語の characters.";
echo mb_convert_encoding($text, 'UTF-8', 'SJIS'); //from SJIS(SHIFT-JIS)这个小脚本很好地找到了您想要的阿拉伯字符的可选参数:http://www.php.net/manual/de/function.mb-convert-encoding.php#97902
但是如果文件已经在UTF-8中,转换就没有必要了,只有在阿拉伯语编码中才有意义,所以我认为这并没有给您带来更多的解决方案。
EDIT2:尝试了一个不同的FTP程序,Filezilla正确地显示了我的文件和文件夹,其中包含日文名和阿拉伯名。(我以前使用过WinSCP 4.3.4 )
https://stackoverflow.com/questions/19829395
复制相似问题