我正在用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没有解决这个问题。你能帮我吗?非常感谢。
utf8_encode
在这里对您没有帮助,因为您的文件系统可能采用不同的编码。使用
echo iconv($in_charset, 'UTF-8', $value);
其中$in_charset
可以是ISO-8859-9
、windows-1254
或CP857
。
或者,如果您还没有尝试,也许您的文件系统已经在utf中了;)。
我也有同样的问题,我的系统使用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