我有一个以下字符串作为文件名
$string = 'recyclage plétre francin.jpg';
并尝试使用以下代码
echo preg_replace('/[^a-z0-9|^.]/i', '_', iconv("UTF-8","ISO-8859-1//TRANSLIT",$string));
由于文件名中有一个特殊的(非 ascii)字符,因此在使用 PHP 上传文件时会创建垃圾字符。
我想要的是用特定的 Ascii 字符替换任何 unicode(非 ascii)字符。我想保留所有受支持的 Ascii 字符并删除非 ascii 字符。由于文件名中的目录分隔符将给出根路径,我也想保留/
或斜杠。\
编辑:(以下未解决)
我对显示输出recyclage plƒtre francin.JPG
的字符有疑问,它已被截断。实际上文件名是,当我调试它时它已经显示出来,其余的就是在那之后写的。任何的想法?f
recyclage pl
.JPG
recyclage plâtre francin
recyclage plƒtre francin.JPG
当我试图转换tri et recyclage du plâtre
但在阅读时它显示tri et recyclage du plâtre
和转换后它显示tri et recyclage du pl^atre
。
任何帮助将不胜感激。