检测 UTF-8 流中的 ASCII 空白

Detect ASCII-whitespace in UTF-8 stream

使用安全吗

ch >= '[=10=]' && ch <=' '

作为检测 ASCII 白色的条件space? (我忽略了不间断 space 等字符。)

我正在考虑像 0x8? 0x20 这样的序列,然后将其视为白色 space,尽管第一个字符表示序列尚未结束。

多字节序列中的所有 UTF-8 字节都将 have their highest bits set,因此 0x00 - 0x20 范围内的任何字节都不能成为此类序列的一部分。唯一没有设置最高位的字节是代表 US-ASCII table.

前 128 个字符的独立字节

因此,它是安全的。