PHP无法重命名具有特殊字符的文件(Windows)

PHP无法重命名具有特殊字符的文件(Windows),php,encoding,special-characters,rename,invalid-characters,Php,Encoding,Special Characters,Rename,Invalid Characters,在文件夹中循环,重命名其文件。除了在使用mbču convertūu编码之前名称中包含ąęėėįųū等字符的文件外,其他一切都正常工作� 这怎么能解决呢 代码: 是的,使用PHP函数rename,可以在win7上重命名包含外来字符的文件(即图像),但这非常棘手 关键是:除旧的错误名称外,所有操作都必须使用UTF8完成: 重命名$srv.'\communi\'.$rp.\'.utf8\u解码$im,$srv.\communi\'.$rp.\'.$nm 要读取包含外来字符的文件,请使用PHP ur

在文件夹中循环,重命名其文件。除了在使用mbču convertūu编码之前名称中包含ąęėėįųū等字符的文件外,其他一切都正常工作�

这怎么能解决呢

代码:


是的,使用PHP函数rename,可以在win7上重命名包含外来字符的文件(即图像),但这非常棘手

关键是:除旧的错误名称外,所有操作都必须使用UTF8完成:

重命名$srv.'\communi\'.$rp.\'.utf8\u解码$im,$srv.\communi\'.$rp.\'.$nm

要读取包含外来字符的文件,请使用PHP urlencode

要在Windows上使用特殊字符重命名,您必须将字符串编码回iso-8859-1或cp1252,两者基本相同。Windows不喜欢文件名使用utf-8字符串

mb_convert_encoding($new, 'iso-8859-1');

您需要使用文件系统正在使用的字符集。您可以打印失败时发生的异常吗?异常“exception”,并在C:\xampp\htdocs\analize\www_dev\import\namefix.php:45堆栈跟踪:0{main}中显示消息“Can not rename field:/foto/3M ESPE/344-Penta MIX 71512 maišymo antgaliai.jpg”
success on: D:/foto/3M ESPE/1806 - Filtek Ultimate paplidymas.jpg
success on: D:/foto/3M ESPE/1842 - Filtek Ultimate 3920P rinkinys 12x4g.jpg
success on: D:/foto/3M ESPE/1873 - Ketac Fil Plus 55291 standartinis rinkinys.jpg
success on: D:/foto/3M ESPE/2003 - Protemp Crown.jpg
success on: D:/foto/3M ESPE/2072 - Relyx fiber post.jpg
success on: D:/foto/3M ESPE/2316 - Filtek Z250 6020TK rinkinys.jpg
success on: D:/foto/3M ESPE/2316 - Filtek Z250 7050TK rinkinys 4x4g.jpg
FAIL on D:/foto/3M ESPE/289 - Filtek Z250 6020A1 papildymas.gif
FAIL on D:/foto/3M ESPE/2909 - Ketac-Cem 37230RE radiopaque cementras triguba pakuotė.jpg
success on: D:/foto/3M ESPE/3025 - Impregum Penta H duosoft RF 31740.jpg
FAIL on D:/foto/3M ESPE/303 - Filtek P60 4720E įvadinis rinkinys.jpg
success on: D:/foto/3M ESPE/314 - Adper single bond 2 51202.png
success on: D:/foto/3M ESPE/316 - Ketac-bond 37330 milteliai.jpg
FAIL on D:/foto/3M ESPE/317 - Ketac_bond 37390 chem. kietėjimo pamušalas.jpg
FAIL on D:/foto/3M ESPE/329 - Ketac-Cem karūnėlių cement. 33g12ml.jpg
success on: D:/foto/3M ESPE/330 - Ketac-Cem 37210 milteliai 33g.jpg
mb_convert_encoding($new, 'iso-8859-1');