问题描述
我正在尝试按字母顺序对法语单词数组进行排序。这是我所做的:
$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 (将#修改为@)