diff --git a/bin/composer b/bin/composer index cee476b6d7de..32c45bcda958 100755 --- a/bin/composer +++ b/bin/composer @@ -65,6 +65,12 @@ if (function_exists('ini_set')) { unset($memoryLimit); } +// Workaround PHP bug on Windows where env vars containing Unicode chars are mangled in $_SERVER +// see https://github.com/php/php-src/issues/7896 +if (Platform::isWindows()) { + $_SERVER = array_merge($_SERVER, array_intersect_ukey($_SERVER, getenv(), 'strcasecmp')); +} + Platform::putEnv('COMPOSER_BINARY', realpath($_SERVER['argv'][0])); ErrorHandler::register();