Closed
Description
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