【发布时间】:2022-01-02 14:48:58
【问题描述】:
使用安全吗
ch >= '\0' && ch <=' '
作为检测 ASCII 空白的条件? (我忽略了不间断空格等字符。)
我正在考虑像0x8? 0x20 这样的序列,然后将其视为空格,尽管第一个字符表示序列尚未结束。
【问题讨论】:
-
您的条件匹配多个控制字符,而不仅仅是“空格”。
标签: utf-8 ascii whitespace
使用安全吗
ch >= '\0' && ch <=' '
作为检测 ASCII 空白的条件? (我忽略了不间断空格等字符。)
我正在考虑像0x8? 0x20 这样的序列,然后将其视为空格,尽管第一个字符表示序列尚未结束。
【问题讨论】:
标签: utf-8 ascii whitespace
多字节序列中的所有 UTF-8 字节都将have their highest bits set,因此 0x00 - 0x20 范围内的任何字节都不能成为此类序列的一部分。唯一没有设置最高位的字节是代表 US-ASCII 表的前 128 个字符的独立字节。
因此,它是安全的。
【讨论】: