在以下环境中排序时:
$ uname -a
Linux srap12dxR1 3.12.28-4-default #1 SMP Thu Sep 25 17:02:34 UTC 2014 (9879bd4) x86_64 x86_64 x86_64 GNU/Linux
$ env | egrep 'LANG|LC'
LC_COLLATE=de_DE.UTF-8
LC_CTYPE=de_DE.UTF-8
以下 UTF-8 编码文件:
$ cat sort_me
¬B
b
Ä
D
X
ä
C
c
A
a
$ od -c sort_me
0000000 302 254 B \n b \n 303 204 \n D \n X \n 303 244 \n
0000020 C \n c \n A \n a \n
使用-F标志(折叠为大写)我得到:
A
a
b
C
c
D
X
¬B
Ä
ä
即字符Ø不被忽略,并且德语元音变音阿阿被放置在最后。
不使用标志-F输出是部分正确的:
$ sort sort_me
a
A
ä
Ä
b
¬B
c
C
D
X
即字符Ø被忽略并且ØB排序在 char 下方乙,但是为什么德语变音符号不只是像 Wiki 所说的那样被视为普通字符:
https://en.wikipedia.org/wiki/Alphabetical_order “...在带有元音变音的德语字母(ä、Ö、Ü)中,通常会像其非元音变音版本一样对待,...”