尝试通过浏览器访问文件或文件夹。通过编写内容为“选项索引”的 .htaccess 文件,以便显示文件夹。(我什至可以通过 http 访问它们)
我通过编写脚本创建了多个文件和文件夹,其中 GET 值文件或文件夹确定文件夹或文件的名称,我尝试使用日语和阿拉伯语字符。尽管它们不会正确显示在 FTP 中(在我的情况下,只有文件名,例如:“?????”)如果您通过脚本读取它们,它们会正确显示。
问题可能出在您用来访问 FTP 的程序上,例如 WinSCP 在默认情况下通常将 UTF-8 设置为“自动”,因此强制它可能会奏效。(尽管我不得不承认它不适用于我的一面,也许我的 linux 服务器不支持 utf-8 文件名,这对你来说也是个问题)
PS:还要确保您的 php 文件在没有 BOM 的情况下以 UTF-8 编码(保存),因为您使用的是常量 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)