如何防止 escapeshellarg 函数转义重音字符?

How could I prevent escapeshellarg function from escaping accented characters?

PHP 本机函数 escapeshellarg 正在转义我机器上的重音字符

$stringWithAccentedChar = 'Hello à è World';
echo escapeshellarg($stringWithAccentedChar);
// Output : Hello World

我尝试使用美国或法国、iso-8859-1 或 UTF-8 语言环境。没有变化。

我认为这是设置问题,因为我使用的每个 php 在线测试仪都不会转义这些字符。

如何防止删除重音字符?

When escapeshellarg() was stripping my non-ASCII characters from a UTF-8 string, adding the following fixed the problem:

<?php
setlocale(LC_CTYPE, "en_US.UTF-8");
?>

来源:https://www.php.net/manual/en/function.escapeshellarg.php#99213