Hi Jeremy.
How about using wmain() instead of main()?
main() is not suitable for arguments in Unicode. It converts the arguments into your local encoding irreversibly.
This may help you:
int wmain(int argc, wchar_t *argv[])
{
...
QString filepath = QString::fromWCharArray( argv[argc - 1] );