Нам нужно увидеть код, который вы используете в форме, чтобы опубликовать данные, чтобы сказать наверняка. Как говорит streetparade - вы должны использовать move_uploaded_file () для перемещения файла, а не mv.
Однако, как только он попадет на сервер, особенно в качестве сервера Unix, системе не нужно будет менять его.
Когда вы говорите, что это изменилось, почему вы так думаете? Я думаю, что более вероятно, что вы получаете доступ к файлу через редактор не-utf8, или вы загрузили его с неправильным типом кодировки.
Попробуйте что-то вроде:
<?php
move_uploaded_file($_FILES['userfile']['tmp_name'], 'uploads/temp/test.txt');
header('Content-type: text/plain; charset=utf-8');
print file_get_contents('uploads/test.txt');
?>