Depends a little bit on whether you are using embedded mode or daemon mode of mod_wsgi, or whether using mod_wsgi-express.
The Python embedded in Apache when not using mod_wsgi-express should by default inherit the system default locale. This is often the C or POSIX locale from memory and not any variant of UTF-8 because Linux distros don't necessarily do sane things, although this may actually have changed.
What is calculated for language/local for specific HTTP requests to Apache based on Apache's rules makes no difference.
If you are using daemon mode of mod_wsgi you can use the lang/locale option to the WSGIDaemonProcess directive to explicitly set it for those processes.
I can't remember if there is a way of overriding it for embedded mode easily besides setting it in systemd or other startup files which startup Apache, I don't think so, so it is governed by what Apache process inherits from the system. You can possibly use Python functions to change it after the process started, but that may be too late for stuff which is already imported.
If you are using mod_wsgi-express, it tries to set things itself to a sane value if not set by the --locale command line option.
Bit of a description about it in:
The behaviour of the --locale option to mod_wsgi-express has changed. Previously if this option was not defined, then both of the locales en_US.UTF-8 and C.UTF-8 have at times been hardwired as the default locale. These locales are though not always present. As a consequence, a new algorithm is now used.
If the --locale option is supplied, the argument will be used as the locale. If no argument is supplied, the default locale for the executing mod_wsgi-express process will be used. If that however is C or POSIX, then an attempt will be made to use either the en_US.UTF-8 or C.UTF-8 locales and if that is not possible only then fallback to the default locale of the mod_wsgi-express process.
In other words, unless you override the default language locale, an attempt is made to use an English language locale with UTF-8 encoding.
So the wisest thing to do if you have a special requirement is to set --locale option.
If you force mod_wsgi-express into embedded mode though, it possibly just inherits whatever parent shell is using again, I can't remember if mod_wsgi-express tries to set it in the parent process as well so inherited in the child process.
As to the initial WSGI script file, it is not a module import and so any special language encoding definition in a magic header of the file is ignored and it should just use whatever the Python lang/locale is set to.
If you need such a thing to be honoured then don't put your real code in the WSGI script file and instead hold your project code in a distinct Python package structure and import modules from it in the WSGI script file.
Not sure if this answers your question or not. My memory is very murky about some of this stuff, especially what happens in embedded mode.
Graham