Как получить правильную очистку имени файла при загрузке в 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 и поэтому заменяется символами подчеркивания.

Другие вопросы по тегам