Dzisiaj natknąłem się na problem przy odświeżaniu plików. Posiadam funkcję transliteracji, która przekształca mi nazwę na odpowiedniki znaków asci.
public function transliterate($filename, $strtolower = true ) { $filename = iconv('WINDOWS-1250', 'ASCII//TRANSLIT//IGNORE', $filename); while( strcmp($filename, $filename = str_replace(array('__', '--'), array('_', '-'), $filename)) != 0 ); return $strtolower ? mb_strtolower($filename, 'utf-8') : $filename; }
Oczywiście funkcja zrobiona jest stricte pod Windows Server dlatego kodowanie początkowe mam ustawione na windows-1250. A co w przypadku serwerów unixowych? Kodowanie jest inne i dlatego chciałbym wykryć jakie kodowanie jest dla nazwy. Wiem, że z wykryciem właściwego kodowania znaków jest problemem? Oczywiście przy zastosowaniu tej samej funkcji z kodowaniem utf-8 przy wgrywaniu przez upload nie ma problemu.