当我在一个新的TYPO3 7.6安装中上传一个糟糕的(或“utf8-ly”)命名文件时,我得到了下划线而不是拼写出特殊字符。
E.g。文件名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=
在localConfiguration中,我们有
'systemLocale' => 'de_CH.UTF-8',
甚至,在php.ini中,我试过
intl.default_locale = de_CH.UTF-8
仍然没有像我期望的那样“正确”重命名,将文件Bräm!.png
重命名为Braem.png
或至少Braem_.png
。
我还能看到什么?
答案 0 :(得分:0)
根据您的描述,文件名不是以UTF-8编码,而是以单字节字符集(例如ISO-8859-1)编码。
在\TYPO3\CMS\Core\Resource\Driver\LocalDriver::sanitizeFileName()
中,如果在后端使用UTF-8,则使用UTF-8(对于旧文件处理函数也是如此)。
在这种情况下,“ä”不是有效的多字节UTF-8字符,因此被下划线字符替换。
答案 1 :(得分:0)
确保LocalConfiguration.php中的[SYS][UTF8filesystem] = true