Description
The following code:
<?php
var_dump(
$_SERVER['FOO'] ?? 'unset',
$_ENV['FOO'] ?? 'unset',
getenv('FOO')
);
When run with variables_order = "EGPCS" and FOO=GüИter传 set in the environment variables in Windows (or using $env:FOO = 'GüИter传' in PowerShell before executing the test file above).
Resulted in this output:
string(7) "G?ter?"
string(7) "G?ter?"
string(11) "GüИter传"
But I expected this output instead:
string(11) "GüИter传"
string(11) "GüИter传"
string(11) "GüИter传"
Doing the same in WSL/Ubuntu seems to yield the correct result, so I assume it's Windows specific.
Regarding PHP version, it appears all versions <7.2 fail completely, with even getenv() returning string(7) "G?ter?" or string(7) "Gⁿ?ter?" for 5.x. From PHP 7.2 onwards I get the behavior described above.
PHP Version
8.0.13
Operating System
Windows 10