MacOS wc(wordcount)用UTF-8字符Å计数错误的单词

[在字符串wc上使用Ås(瑞典字母大写字母Å)时,当我期望单词计数1时,我得到了单词计数2。

计算单词Å得出1,感觉正确。

$ echo sÅ | wc
       1       1       4
$ echo Å | wc
       1       1       3

[ÅssÅs个单词的计数为2,感觉不正确。

$ echo sÅs | wc
       1       2       5
$ echo Ås | wc
       1       2       4

只有字母Å可以复制,而没有åäöÄÖ中的任何一个。

$ echo "Ås" | wc
       1       2       4
$ echo "Äs" | wc
       1       1       4
$ echo "Ös" | wc
       1       1       4

启动终端时,我使用Mac OS的默认区域设置,如下所示:

$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

我在MacOS Sierra和Lion上得到相同的结果。

只需检查字符串Ås的外观。

$ echo "Ås" | hexdump
0000000 c3 85 73 0a                                    
0000004

因此,这与语言环境设置有关,并且Mac OS设置错误的方式-至少与命令wc有关吗?

这是Mac OS版本wc中有关UTF-8字符Å的错误吗?

[或者,当使用wc -c(默认值)时,是否将字符85检测为空格字符,即ASCII表中的省略号? ([wc -m但是提供了字数预期的答案)

或者我在这里缺少明显的东西吗?

0
投票

的确!这取决于语言环境设置-UTF_8是可变长度编码方案。直的latin1字符(旧的Ascii字符)被编码为1字节,而带有重音符号的瑞典字符为2字节(或更多?),尤其是带有环的A。希望对您有所帮助