为什么在GLibC中“不间断空间”和其他ispunct()?

时间:2018-06-20 15:41:23

标签: c unicode glibc

我一直在看GNU LibC给各种分隔符提供的<wctype.h>标志。基本上有两组。

第一个组在iswspace()iswblank()(和isprint()上返回true,但对于其他组也是如此)。这些包括:

到目前为止,没有投诉。不过,其他小组让我感到困惑:

这些在iswspace()iswblank()上返回 false ,但是对于iswpunct()iswgraph()则返回 true

为什么最后三个标点符号而不是空格?

Java对此显然同意GLibC(请参阅链接页面)。 Unicode将两个组都标记为类别“ Zs”,“ Space_Separator” ...

1 个答案:

答案 0 :(得分:2)

ISO / IEC 30112 信息技术-文化惯例的规范方法状态,重点是:

  

空格

     

定义要归类为空白字符的字符,查找语法边界。 [...]该类不应不包含NO-BREAK空格字符 <U00A0><U2007><UFEFF>,因为这些字符不应用于单词边界。