Как получить правильную очистку имени файла при загрузке в TYPO3?
Когда я загружаю файл с плохим (или "utf8-ly") именем в новой установке TYPO3 7.6, я получаю подчеркивание вместо прописанных специальных символов.
Например, имя файла Bräm!.png
продезинфицировано до Bra__m_.png
, Я бы ожидал Braem.png
,
Язык сервера выглядит нормально:
LANG=de_CH.UTF-8
LC_CTYPE="de_CH.UTF-8"
LC_NUMERIC="de_CH.UTF-8"
LC_TIME="de_CH.UTF-8"
LC_COLLATE="de_CH.UTF-8"
LC_MONETARY="de_CH.UTF-8"
LC_MESSAGES="de_CH.UTF-8"
LC_PAPER="de_CH.UTF-8"
LC_NAME="de_CH.UTF-8"
LC_ADDRESS="de_CH.UTF-8"
LC_TELEPHONE="de_CH.UTF-8"
LC_MEASUREMENT="de_CH.UTF-8"
LC_IDENTIFICATION="de_CH.UTF-8"
LC_ALL=
В локальной конфигурации мы имеем
'systemLocale' => 'de_CH.UTF-8',
И даже в php.ini я попробовал
intl.default_locale = de_CH.UTF-8
Тем не менее, нет "правильного" переименования, как я ожидал, переименование файла Bräm!.png
в Braem.png
или по крайней мере Braem_.png
,
Где еще я могу посмотреть?
2 ответа
Удостовериться [SYS][UTF8filesystem] = true
в тебе LocalConfiguration.php
Из того, что вы описываете, имя файла кодируется не в UTF-8, а в однобайтовом наборе символов (например, ISO-8859-1). В \TYPO3\CMS\Core\Resource\Driver\LocalDriver::sanitizeFileName()
UTF-8 используется, если вы используете его в бэкэнде (то же самое для старых функций обработки файлов).
В этом случае "ä" не является допустимым многобайтовым символом UTF-8 и поэтому заменяется символами подчеркивания.