У меня есть HTML в UTF-8 с формой загрузки. После загрузки я конвертирую заданное имя файла в PHP используя
$filename = strtr ($filename, $conversion_chart);
При использовании Safari или Chrome на Mac выглядит, что он работает, но когда первый символ в имени файла имеет диакритические знаки (например, á, Š,, …), этот символ не преобразуется и отсутствует в выводе. Все остальные символы преобразованы правильно. Это работает так:
«Ušiak.doc» -> «usiak.doc» — правильное преобразование
«Šiak.doc» -> «iak.doc» — плохая конверсия
Обновление: недавно я обнаружил, что из Firefox всегда плохая конверсия. Подобно:
«uŠiak.doc» -> «uSÌiak.doc»
Вот фактический код PHP:
http://test.awaldorf.cz/inc/prihlaska.php.noparse
Ваш исходный код PHP должен быть в кодировке UTF8. Как это не так (не имеет значения, что выглядит нормально в вашем редакторе, это не UTF8) ваш $conversion_chart
сломано. Вы должны либо правильно использовать UTF8 для исходного файла, либо заменить Š
с числовыми кодами, чтобы избежать проблем с кодированием
Других решений пока нет …