嗯,我的目录中有这些JSON文件,并且文件名包含Unicode字符。
"Spanish - Estoy leyendo este archivo.json"
"Malayalam - ഞാൻ ഈ ഫയൽ വായിക്കുന്നു.json"
"Greek - Διαβάζω αυτό το αρχείο.json"
"Japanese - このファイルを読んでいます.json"
"English - I am reading this file.json"
我正在尝试使用scandir
函数列出以下代码段列出所有文件。
<?php
$dir = './';
$files = scandir($dir);
echo "<pre>";
print_r($files);
echo "</pre>";
?>
但是我没有得到实际的文件名,但如下所示。
Array
(
[0] => .
[1] => ..
[2] => English - I am reading this file.json
[3] => Greek - ??a�??? a?t? t? a??e??.json
[4] => Japanese - ?????????????.json
[5] => Malayalam - ??? ? ??? ????????????.json
[6] => Spanish - Estoy leyendo este archivo.json
[7] => index.php
)
实现相同的正确方法是什么?
似乎Web服务器的标题中没有使用utf-8字符集(在浏览器的控制台中,双击检查标题->“网络”选项卡。)>
因此,即使php变量包含正确的文件名,浏览器也不希望使用utf-8字符并显示错误。尝试在php中显式设置字符集:
<?php
header('Content-type: text/html; charset=utf-8');
$dir = './';
$files = scandir($dir);
echo "<pre>";
print_r($files);
echo "</pre>";
?>