首页 > 解决方案 > Linux 和 macOS 之间的 LC_COLLATE(排序顺序)差异

问题描述

sort我在使用 macOS 上的命令对带有重音字母的文本进行排序时遇到问题。

这是我的语言环境设置:

LANG="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_CTYPE="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_ALL="fr_FR.UTF-8"

这是一个带有相关联的简单文本文件hexdump -C

î
a
z

十六进制转储:

00000000  c3 ae 0a 61 0a 7a 0a 0a

这是我sort在 macOS 上使用命令时得到的结果:

a
z
î

这是正确的顺序。但是,使用相同的语言环境设置,我在 Ubuntu 上得到了正确的结果:

a
î
z

我如何设置我的 macOS 安装,使其工作方式与 Ubuntu 相同?

标签: macossortingunixencodinglocale

解决方案


推荐阅读