我有一个文件名字符串,如下所示:
$string = 'recyclage plétre francin.jpg';
我尝试使用以下代码:
由于文件名中存在特殊的(非ASCII)字符,使用PHP上传文件时会创建垃圾字符。
我想要的是用特定的ASCII字符替换任何Unicode(非ASCII)字符。我想保留所有支持的ASCII字符并删除非ASCII字符。我还想保留“/”或“\”斜杠,因为它们是文件名中的目录分隔符,其中将给出根路径。
编辑:(下面未解决)
我有一个问题:
当我尝试转换
任何帮助将不胜感激。
我尝试使用以下代码:
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
。任何帮助将不胜感激。
utf8_encode($string)
吗? - steven