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

2023-12-12

我一直在看<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(使用前将#替换为@)

为什么 GLibC 中使用“不间断空格”和其他 ispunct() ? 的相关文章

  • 使用内部构造函数实例化类

    我有一个类 其构造函数被定义为内部 这意味着我无法实例化它 虽然这可能有道理 但出于调试和研究目的 我仍然愿意做一次 是否可以通过反射来做到这一点 我知道我可以访问私有 内部成员 但是我可以调用内部构造函数吗 或者 由于构造函数没有做任何重
  • 为什么 LinkedList 通常比 List 慢?

    我开始在我的一些 C 算法中使用一些 LinkedList 而不是列表 希望能够加快速度 然而 我注意到他们只是感觉更慢 像任何优秀的开发人员一样 我认为我应该尽职调查并验证我的感受 所以我决定对一些简单的循环进行基准测试 我认为用一些随机
  • 如何检查 .NET 4.0 中的泛型参数是否是动态的

    我有课ObjectMapper
  • 隐形打开的弹出窗口

    第二天就解决这个问题 要重现 请创建新的 WPF 应用程序 xaml
  • 如何在 C++ 的子目录中创建文件?

    这是我的代码 如何在子目录联系人中创建文件 每次创建该文件时 它都会出现在与我的程序相同的目录中 int main ofstream myfile contacts myfile open a myfile close 在构造函数中指定完整
  • initializer_list 和默认构造函数重载决策

    include
  • Type_traits *_v 变量模板实用程序顺序无法编译

    看过了这个答案 https stackoverflow com a 31763111 7151494 我试图想出一个变量模板从中获取代码的实用程序 template
  • 我们应该使用 Eval 还是 Databind 事件?

    当使用 Asp Net 并使用 ListView 等控件创建网站时 使用 Eval 命令是一个好习惯吗 还是应该在 databind 事件中填充文字和数据 取决于您是否想在更新事件上写回数据 在这种情况下数据绑定 如果您只想读取该数据 可以
  • 使用 Microsoft Graph 创建用户

    如何使用 Microsoft graph 创建用户 因为我在保存过程中遇到了权限失败的问题 我确实有几个问题 在图中调用创建用户 API 将在哪里创建用户 是在 Azure AD 还是其他地方 我尝试通过传递 json 和必需的标头来调用创
  • 基于 C++ 范围的 for 循环

    尝试使用基于范围的 for 循环执行某些操作 可以使用常规的 for 循环来完成 如下所示 vector
  • 使用对象列表构建树

    我有一个带有属性 id 和parent id 的对象列表 我想建造一棵树来连接那些孩子和父母 1 个父对象可以有多个子对象 并且有一个对象将成为所有对象的祖先 实现该功能最快的算法是什么 我使用 C 作为编程语言 但其他语言也可以 像这样的
  • AspNetCore.SignalR:无法启动未处于初始状态的连接

    我无法让 ASP NET Core SignalR 应用程序正常运行 我有这个服务器端代码 public class PopcornHub Hub private int Users public async Task BroadcastN
  • 从存储过程返回 int 值并在 ASP.NET 代码中检查它以验证登录表单

    当我多次尝试但没有得到有效结果时 使此代码运行的真实顺序是什么 SQL存储过程的代码 set ANSI NULLS ON set QUOTED IDENTIFIER ON GO ALTER PROC dbo login proc usern
  • 停止 TcpListener 的正确方法

    我目前正在使用 TcpListener 来处理传入连接 每个连接都有一个线程用于处理通信 然后关闭该单个连接 代码如下 TcpListener listener new TcpListener IPAddress Any Port Syst
  • 如何在Linux上构建GLFW3项目?

    我已经使用 cmake 和 make 编译了 glfw3 和包含的示例 没有出现任何问题 开始编写我的第一个项目 作为 opengl 和 glfw 的新手 并且对 C 和 CMake 没有经验 我正在努力理解示例构建文件 甚至要链接哪些库和
  • 获取大于某个数字的元素个数

    我正在尝试解决以下问题 数字被插入到容器中 每次插入数字时 我需要知道容器中有多少元素大于或等于当前插入的数字 我相信这两个操作都可以以对数复杂度完成 我的问题 C 库中有标准容器可以解决这个问题吗 我知道std multiset可以在对数
  • Intel 和 AMD 处理器有相同的汇编程序吗?

    C语言被用来编写Unix以实现可移植性 使用不同编译器编译的同一个C语言程序会产生不同的机器指令 为什么 Windows 操作系统能够在两者上运行Intel https en wikipedia org wiki Intel and AMD
  • 无效的模板相关成员函数模板推导 - 认为我正在尝试使用 std::set

    我有一个继承自基类模板的类模板 基类模板有一个数据成员和一个成员函数模板 我想从我的超类中调用它 我知道为了消除对成员函数模板的调用的歧义 我必须使用template关键字 我必须明确引用this在超级班里 this gt base mem
  • 编译器什么时候内联函数?

    在 C 中 函数仅在显式声明时才内联inline 或在头文件中定义 或者编译器是否允许内联函数 因为他们认为合适 The inline关键字实际上只是告诉链接器 或告诉编译器告诉链接器 同一函数的多个相同定义不是错误 如果您想在标头中定义函
  • 如何设置 Swashbuckle 与 Microsoft.AspNetCore.Mvc.Versioning

    我们有asp net core webapi 我们添加了Microsoft AspNetCore Mvc Versioning and Swashbuckle拥有招摇的用户界面 我们将控制器指定为 ApiVersion 1 0 Route

随机推荐

  • EF Core 中的 IsNumeric

    EF Core 中是否有相当于 IsNumeric 的功能 或者使用 linq 或 Dynamic Sql 或类似功能 我试图从 nvarchar 列中仅获取具有数值的行 现在它已添加到 EF Core 中 看起来它是 EF Core 6
  • C# 中 UTC 日期/时间字符串的转换

    我需要转换字符串 Fri Sep 11 00 00 00 GMT 04 00 2020 into a DateTime object 11 09 2011 当我使用 DateTime result DateTime TryParseExac
  • 字符常量对于其类型来说太长

    我想尝试制作一个基于文本的游戏 但对于 item2 item6 它说 多字符字符常量 字符常量对其类型来说太长 从 int 到 char 的隐式转换会将值从 175174007 更改为 103 include
  • 如何自动保持 2 个 git 存储库同步

    有 2 台服务器 应始终保持同步 当有人将某些内容推送到服务器 A 的存储库时 服务器 B 上的存储库应该自动更新 具体取决于哪个服务器是主 从服务器 两台服务器不在同一台机器上 是否可以在每次更新时无需运行额外的手动命令 git fetc
  • 将字符串转换为 NSDate 的正确方法?(iphone)

    在我的应用程序中 我将日期存储为字符串 MM dd YYYY 格式 在数据库中 稍后 当我检索字符串时 我必须比较两个日期 如何实现这一目标 如果我使用 YYYY MM dd 格式 我可以直接将其作为字符串进行比较 现在我必须使用 nsda
  • Roslyn 检查属性的类型

    我试图找出比较 Roslyn 中属性数据的正确方法 static bool ResolveAttributes IMethodSymbol methodSymbol var attributes methodSymbol GetAttrib
  • 淘汰赛在自身上绑定一对多关系(淘汰赛中的递归)

    因此 在我的数据库中 我有一个与其自身具有一对多关系的模型 Reddit 上的评论系统就是一个很好的例子 我目前正在做这样的事情 div class body span span span span div 这显然只支持一个级别的孩子 当
  • 您可以将流量管理器与 blob 存储或 Azure 功能结合使用吗

    我有一个来自 Azure 流量管理器请求的简单 JSON 因此理想情况下它将存储在一个 Blob 存储帐户中 该帐户标有用于读取 Blob 的公共访问策略 当我尝试执行此操作 在 ATM 中使用外部端点 时 我收到 400 HTTP 响应
  • Vivado 比特流消息:违反规​​则 (LUTLP-1) 组合循环

    我在串流时遇到问题 该项目旨在创建一个占空比为 1 2 的时钟 综合和实现过程中没有任何问题 我尝试了几种方法来解决它 但他们的表现并不好 module clock div clk clk out input clk output reg
  • Vite 在编译文件中添加资产路径前缀/更改资产路径

    您能否告诉我 如何更改 vite 资产路径的构建方式 但仅限于编译文件 我的意思是 例如 我有文件index html 如下所示
  • 创建多行和多列xaml

    我需要创建很多行和列才能正确管理我的自定义控件 所以我的问题是是否有可能达到与下面所示的代码相同的结果 以更干净的方式 这感觉很不切实际
  • 确定哪个 vim 插件导致行为

    我在 vim 和 nvim 的左侧边缘看到一些视觉伪影 我不确定哪个插件导致了这种行为 我尝试启用 禁用某些插件组合 但无法识别 您可以准确地找到定义所使用的内容 sign list 这可以帮助您找出它们是在哪个插件中定义的 help si
  • 如何加入空白表[重复]

    这个问题在这里已经有答案了 我想从 3 个表中获取所有行 但其中一个是空的 Table 1 Names Numbers Hello 123 Bye 123 Table 2 Names Numbers Xyz 246 Table 3 Name
  • “item.geometry.location.kb”和“item.geometry.location.jb”返回未定义

    我正在使用 Google 地图获取自动完成的城市列表 我以前用过项目 几何 位置 kb作为经度和项目 几何 位置 jb作为纬度 但从今天 昨天起它们就没有被定义 显然 人们必须使用item geometry location lng and
  • 使用 Asp.net core 创建另一个 Web api 的代理

    我正在开发一个 ASP Net Core Web 应用程序 我需要为另一个 外部 Web 服务创建一种 身份验证代理 我所说的身份验证代理的意思是 我将通过网络应用程序的特定路径接收请求 并且必须检查这些请求的标头以获取我之前发布的身份验证
  • jQuery Mobile(点击事件)

    我正在开发智能手机混合应用程序 我正在尝试隐藏 显示 div with slideDown slideUp 当我点击按钮时 菜单 div 应该根据上下文隐藏 显示 在我的电脑上一切正常 但在我的手机上根本无法工作 什么也没有发生 这是我的
  • 从字符串创建 JavaScript 对象

    我正在尝试创建一个 JavaScript 函数 该函数使用字符串作为结构创建一个对象并从 DOM 数据填充它 例如 以下字符串可能如下所示 some example here hello some example there hi othe
  • 映射多变量/层系统的概括

    我写了一个应用程序C QT与设备通信以读取 写入其变量 将它们放入 获取结构中 并将它们呈现在 GUI 中以用于查看 编辑目的 1 该设备附带了一个示例 c 代码 该代码还定义了通信协议 以非常糟糕的方式 例如 define VALUE 1
  • 基本身份验证:在 supergaent+OSX 上失败,在 superagent+Redhat 上成功,在 Postman+OSX 上成功,

    使用 POSTMAN 一切都很好 我将相同的标头 参数 传递给 superagent 如下所示 const superagent require superagent const grab require ps grab superagen
  • 为什么 GLibC 中使用“不间断空格”和其他 ispunct() ?

    我一直在看