Cygwin:man 列包含意外字符而不是 -(减号、连字符),这是预期的吗?

问题描述 投票:0回答:1

Cygwin:

man column
包含意外字符而不是
-
(减号、连字符):

# cygwin
$ man column | grep -P 'table.*truncate' | od -c
0000000                               -   T   ,       -   -   t   a   b
0000020   l   e 342 200 220   t   r   u   n   c   a   t   e       c   o
0000040   l   u   m   n   s  \n
0000046

# linux
$ man column | grep -P 'table.*truncate' | od -c
0000000                               -   T   ,       -   -   t   a   b
0000020   l   e   -   t   r   u   n   c   a   t   e       c   o   l   u
0000040   m   n   s  \n
0000044

在这里我们看到,在 Cygwin 上,

man column
包含意外字符,而不是
-
(减号、连字符)。是预期吗?

cygwin manpage
1个回答
0
投票

使用这段 python 可以发现,以八进制显示的 3 个八位字节是 Unicode 连字符的 UTF-8 表示形式,这与 ASCII 减号不同。

$ python
>>> b = b"\342\200\220"
>>> c = b.decode('utf8')
>>> c
'‐'
>>> hex(ord(c))
'0x2010'
>>> ^d
$
© www.soinside.com 2019 - 2024. All rights reserved.