PHP语言环境在macOS上无法按预期工作

问题描述

我正在尝试按字母顺序对法语单词数组进行排序。这是我所做的:

$locale = setlocale(LC_ALL,'fr_FR.UTF-8');

print_r($locale);
echo PHP_EOL;

$verbs = [
    'être','faire','ecouter','dire','euphoriser',];

sort($verbs,SORT_LOCALE_STRING);

print_r($verbs);

在我的Web服务器上,它可以正常工作,可以打印:

fr_FR.UTF-8
Array
(
    [0] => dire
    [1] => ecouter
    [2] => être
    [3] => euphoriser
    [4] => faire
)

重音会被忽略,ê的行为类似于e。但是在macOS上,我的控制台中的PHP存在问题。同一应用程序将显示以下结果:

fr_FR.UTF-8
Array
(
    [0] => dire
    [1] => ecouter
    [2] => euphoriser
    [3] => faire
    [4] => être
)

找到了语言环境,因为setlocale()正确返回了fr_FR.UTF-8(对于无效的语言环境,它返回了false)。但是由于某种原因,être是排序后数组的最后一个元素。就像这个法语语言环境已损坏,或者从未使用过。如何使控制台PHP正确使用语言环境?

运行locale -a时,fr_FR.UTF-8被列为计算机上可用的语言环境之一。

我正在使用PHP 7.4.9。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)