Доброго времени суток!
Как решить такую проблему с кодировкой?
Кодировка самого файла - UTF-8.
Функция на php читает файлы и папки из указаной директории, и выводит их на экран. отображаются они нормально, а вот в поисковой строке при открытии папки с русскими символами непонятная чушь(вложение).
Кодировка в HTML стоит <meta charset="utf-8">. Кодировка локального сервера и файла php.ini на сервере тоже UTF-8.
Как с этим бороться?
PHP:
скопировать код в буфер обмена
function getFileSize( $size ) { $times = 0; $comma = '.'; while ($size>1024) { $times++; $size = $size/1024; } $rest = $size - $size2; $rest = $rest * 100; $addsize = $decimal; if ($decimal<10) $addsize .= '0'; if ($times == 0) $addsize = $size2; else $addsize = $size2.$comma.mb_substr($addsize,0 ,2 ); switch ($times) { case 0 : $mega = ' bytes'; break; case 1 : $mega = ' KB'; break; case 2 : $mega = ' MB'; break; case 3 : $mega = ' GB'; break; } $addsize .= $mega; return $addsize; } // Рекурсивная функция для удаления каталога function removeDir( $dir ) { while( ($file = readdir($d)) !== false ) { } else if ( is_dir($dir.'/'.$file) and $file != '.' and $file != '..' ) { removeDir($dir.'/'.$file); } } } } $dir = $_POST["dirName"]; if ( isset( $_GET['dir'] ) ) $dir = $_GET['dir']; // ПЕРВАЯ ЧАСТЬ СКРИПТА - ПОКАЗАТЬ СПИСОК ДИРЕКТОРИЙ И ФАЙЛОВ // Родительская директория $cur = $basedir; // Путь до текущей директории $path = ''; $path .= '/'; } $p_out = $path; $path .= $s.'/'; $p_out .= '<a href="'.$_SERVER['PHP_SELF'].'?dir='.$path.'">'.$s.'</a>/'; } echo "<div class='wraper'>"; echo '<p class="currentDir">Текущая директория: '.$p_out.'</p>'; echo '<div> <a href="'.$_SERVER['PHP_SELF'].'?dir='.$parent.'"><img src="./images/prev.png" alt="" /><strong>Назад</strong></a></div>'."\n"; echo "</div>"; // Список файлов и директорий текущей директории while (($file = readdir($dh)) !== false) { if ($file != '..' && $file != '.') { $files[] = $file; } if ( is_dir( $file ) ) $folders[] = $file; } } } echo "<table border='3'><tr><th>#</th><th>Имя</th><th>Тип</th><th>Размер</th></tr>"; foreach ($folders as $file) { echo '<tr><td><img src="./images/folder.gif" alt="" /></td><td><a title="Перейти в папку" href="'.$_SERVER['PHP_SELF'].'?dir='.$basedir.'/'.$file.'">'.iconv("Windows-1251","UTF-8",$file).'</a></td><td>Папка</td><td></td></tr>'; } foreach ($files as $file) { echo '<tr><td><img src="./images/file.gif" alt="" /></td><td>'.iconv("Windows-1251","UTF-8",$file).'</td><td>Файл</td><td>'.getFileSize (filesize($file)).'</td></tr>'; } echo "</table>"; }
Прикреплено изображение (Нажмите для увеличения)
|