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