No leiste esta url que puse en mi respuesta???->
https://evertpot.com/filesystem-encoding-and-php/ verdad?? Si no sabes ingles dale traducir con google.
No tienes que hacer funciones. Estas en windows y
windows usa ISO-8859-1 no utf8 y como todo esta configurado en utf8 tienes que convertirlo, pero ojo solo a la hora de que lo escribas y leas del disco, en otros lados como escribir el nombre en BD no lo tienes que hacer. Tampoco cuando quien lo lee es el navegador (es decir, la 1ra vez) porque el navegador te entrega la codificación correcta.Esto es lo unico que hay que hacer.
$nombre="ññ.txt"
$f2=fopen(
iconv("UTF-8", "ISO-8859-1",$nombre),"w");
fwrite($f2,$texto);
fclose($f2);
ó al leer:
$tam=filesize(
iconv("UTF-8", "ISO-8859-1",$nombre));
y si no lees la url que te pongo, pues más ya no puedo ayudarte.
Espero te sirva.
Saludos