带有土耳其字符的PHP scandir文件名

时间:2014-10-31 14:39:45

标签: php string filenames

我使用PHP scandir列出文档。我有一些字符的问题,如ğ,ı,ş... 所以这是我的代码;

$directory = "document";
$scanned_directory = array_diff(scandir($directory, 1), array('..', '.'));
foreach ($scanned_directory as &$value) {
    echo utf8_encode($value);
}

实际上文件名是“şığx.jpg”,但输出是“þýðx.jpg”。 utf8_encode没有解决这个问题。你能帮助我吗?谢谢。

2 个答案:

答案 0 :(得分:1)

utf8_encode在这里不会帮助您,因为您的文件系统可能采用不同的编码方式。使用

echo iconv($in_charset, 'UTF-8', $value);

其中$in_charset可能是ISO-8859-9windows-1254CP857

或者如果你没有尝试过,也许你的文件系统已经在utf中了;)。

答案 1 :(得分:0)

我有同样的问题,我的系统使用CP857。如何从CP857转换为UTF-8?

此网站https://doc.bccnsoft.com/docs/php-docs-7-en/mbstring.supported-encodings.html声称PHP 7不支持CP857。但是我不想相信这一点。

我找到了其他站点,我将对其进行检查:https://www.phpclasses.org/package/1360-PHP-Conversion-between-many-character-set-encodings.html