As a frame of reference incron on CentOS 7 works as expected but just a limited test since we don't know how your upload process works.
Code:
/home/user/mydir IN_CREATE,IN_CLOSE_WRITE /home/user/myscript.sh "$#"
#!/bin/bash
echo "$@" >> /home/user/data.dat
incron and my script was tested using the touch command.
touch ~/mydir/"test'a.txt"
And as expected data.dat contains
test'a.txt
test'a.txt
I assume your uploaded process works as expected so is it due to incron not passing the file name correctly or something else wrong with your encode script?