【问题标题】:Detect ASCII-whitespace in UTF-8 stream检测 UTF-8 流中的 ASCII 空白
【发布时间】:2022-01-02 14:48:58
【问题描述】:

使用安全吗

ch >= '\0' && ch <=' '

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

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

【问题讨论】:

  • 您的条件匹配多个控制字符,而不仅仅是“空格”。

标签: utf-8 ascii whitespace


【解决方案1】:

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

因此,它是安全的。

【讨论】:

    猜你喜欢
    • 2013-04-24
    • 2014-06-19
    • 1970-01-01
    • 2020-01-29
    • 2012-10-29
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    相关资源
    最近更新 更多