为什么是;“无中断空间”;还有一些是GLibC中的ispunt()?
我一直在看GNULIBC为各种分隔符提供的为什么是;“无中断空间”;还有一些是GLibC中的ispunt()?,c,unicode,glibc,C,Unicode,Glibc,我一直在看GNULIBC为各种分隔符提供的标志。基本上有两组 第一个组在iswspace()和iswblank()上返回true(和isprint(),但另一个组也是如此)。这些措施包括: 到目前为止没有投诉。另一个小组让我感到困惑,不过: 它们在iswspace()和iswblank()上返回false,但对于iswpunct()和iswgraph()返回true 为什么最后三个被认为是标点符号而不是空格? Java显然同意GLibC的观点(参见链接页
标志。基本上有两组
第一个组在iswspace()
和iswblank()
上返回true(和isprint()
,但另一个组也是如此)。这些措施包括:
iswspace()
和iswblank()
上返回false,但对于iswpunct()
和iswgraph()
返回true
为什么最后三个被认为是标点符号而不是空格?
Java显然同意GLibC的观点(参见链接页面)。将这两组标记为“Zs”类、“空间分隔符”…ISO/IEC 30112信息技术——文化习俗的规范方法,强调:
空格
定义要分类为空白字符的字符,以查找语法边界。[…]类应不包括不间断空格字符
,
,
,因为这些字符不应用于单词边界
有一个关于ISO 30112中空格字符列表的注释,最后三个未列出。为该标准起草工作草案,也许你会在其中找到一些线索。@Mat:这是你提供给我的一个非常非常有价值的链接,因为我面临的潜在问题比这个问题要大得多,ISO 30112似乎正是我一直在寻找的……该文档还解释了为什么空格类别中不包含任何分隔符:因为它们不应该用作单词分隔符。不过,有趣的是,该特定标准根据glibc输出定义了其LC_CTYPE,因此涉及到一定程度的循环推理。。。