我一直在看<wctype.h>
GNU LibC 赋予各种分隔符的标志。基本上有两组。
第一组返回 trueiswspace()
and iswblank()
(and isprint()
,但对于另一组来说也是如此)。这些包括:
- U+0020 空间
- U+1680 奥格姆空间标记
- U+2000 四人组
- U+2001 电磁四元组
- U+2002 EN 空间
- U+2003 电磁空间
- U+2004 三人空间
- U+2005 四人空间
- U+2006 六人空间
- U+2008 标点符号空格
- U+2009 薄空间
- U+200a 头发空间
- U+205f 中等数学空间
- U+3000表意空间
到目前为止没有任何投诉。这other不过,小组让我感到困惑:
- U+00a0 不间断空格
- U+2007 人物空间
- U+202f 窄无间断空间
这些返回false on iswspace()
and iswblank()
, but true for iswpunct()
and iswgraph()
.
为什么最后三个被认为是标点符号,而不是空格?
显然,Java 在这一点上与 GLibC 一致(参见链接页面)。Unicode将两个组标记为类别“Zs”、“Space_Separator”...
ISO/IEC 30112信息技术文化习俗规范方法状态,强调我的:
space
定义要分类为空白字符的字符,寻找句法边界。 [...] 班级应该不包含 NO-BREAK 空格字符 <U00A0>
, <U2007>
, <UFEFF>
,因为这些字符不应用于单词边界。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)