Isso parece um problema de codificação. Infelizmente, o PHP precisa de um pouco de mão quando se trata de codificações, porque suas strings são de byte único por padrão. Se você estiver criando o nome do arquivo no PHP, utf8_encode()
deve ser útil; Observe, no entanto, que ele assume a codificação ISO-8859-1 para a entrada.
Por outro lado, se você estiver usando o nome do arquivo enviado por um cliente, talvez possa solicitar que o cliente faça a codificação para você. Isso é feito com o atributo accept-charset
da tag <form>
e / ou definindo o conjunto de caracteres de a página em que o formulário está. Certos clientes podem usar um ou outro, então, para melhores resultados, use UTF-8 para cada um.