Utf 8 elFinder未显示带有umlaute的文件夹或文件

Utf 8 elFinder未显示带有umlaute的文件夹或文件,utf-8,elfinder,Utf 8,Elfinder,我遇到了一个关于elFinder的问题。 当服务器上有一个包含字母öäü的文件或文件夹时,该目录(文件)将不会显示在el finder中,并且我在 lFinderConnector.class.php json_encode():中的UTF-8序列无效 论据 但是如果我上传一个文件,文件本身像:Testö.png,它会正确地显示在服务器上,它看起来像:Testè.png。董事会也是如此 我的问题是,我有数以百万计的文件,可能包括乌姆劳特(ö,ü,ä),而埃尔芬德无法显示它们 有没有其他人遇到过

我遇到了一个关于elFinder的问题。 当服务器上有一个包含字母öäü的文件或文件夹时,该目录(文件)将不会显示在el finder中,并且我在

lFinderConnector.class.php json_encode():中的UTF-8序列无效 论据

但是如果我上传一个文件,文件本身像:Testö.png,它会正确地显示在服务器上,它看起来像:Testè.png。董事会也是如此

我的问题是,我有数以百万计的文件,可能包括乌姆劳特(ö,ü,ä),而埃尔芬德无法显示它们

有没有其他人遇到过这样的问题,或者有什么想法或建议如何解决它

setlocale(LC_ALL, 'de_DE');
function array_walk_deep(&$items){
    foreach ($items as &$item) {
        if(is_array($item)) {
          array_walk_deep($item);
         } else {
            if (!strpos($item ,'ö')) {
                $item = iconv('UTF-8', 'ASCII//TRANSLIT', utf8_encode($item)) ;
            }

        }
    }
}

array_walk_deep($data);
所以我就做了一个变通办法。在elFinderConnector中,我在将数组返回javascript之前使用这段代码,这将更改ö->oe theä->ae和ü->ue将不再导致任何问题,并且将显示目录。用户可以在以后重命名目录和文件。 希望有人会觉得这有用


regrads

您的解决方案将UMLAUT替换为ASCII字符,对我来说,它只需在
json\u encode()
之前的
$data
数组项上使用
utf8\u encode()
并输出它(它保留UMLAUT)。
我获取了您的代码片段,对其进行了修改,并将其添加到elFinderConnector类中

protected function array_walk_deep(&$items){
foreach ($items as &$item) {
    if(is_array($item)) {
        $this->array_walk_deep($item);
    } else {            
        $item = utf8_encode($item);
    }
}
然后在
output()
方法中的
$data
数组中调用它

$this->array_walk_deep($data);
exit(json_encode($data));