https://www.copperspice.com/docs/cs_api/class_qcoreapplication.html#ace25f03f53b6ad1e3fbd48b49003a37f
You find this:
=====
On Unix this list is built from the argc and argv parameters passed to the constructor in the main() function. The string-data in argv is interpreted using QString::fromLocal8Bit(); hence it is not possible to pass, for example, Japanese command line arguments on a system that runs in a Latin1 locale. Most modern Unix systems do not have this limitation, as they are Unicode-based.
=====
In all of the changes moving to QChar32 internally nobody changed this to be QString::fromUtf8() on Linux?

QString::fromLocal8Bit() would only be needed as an all else fails fallback.