загрузка файла — функция Php strstr не преобразует первый символ, если с диакритическими знаками

У меня есть 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

и HTML: http://test.awaldorf.cz/prihlasky.php

-1

Решение

Ваш исходный код PHP должен быть в кодировке UTF8. Как это не так (не имеет значения, что выглядит нормально в вашем редакторе, это не UTF8) ваш $conversion_chart сломано. Вы должны либо правильно использовать UTF8 для исходного файла, либо заменить Š с числовыми кодами, чтобы избежать проблем с кодированием

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector