【问题标题】:Validate a String for ASCII characters验证 ASCII 字符的字符串
【发布时间】:2013-05-31 21:25:15
【问题描述】:

我正在编写一个需要字节数组作为输入的函数。这个输入数组应该代表一个有效的 ASCII 字符串。

我正在尝试找出一种方法来验证上述要求。如果有任何区别,数组应该是 8 个字节长。

我考虑过检查每个字节是否在 ASCII 范围内,但不适用于多字节字符。

我还看到 .NET Encoding.ASCII.getString() 可以解析字节并为任何无效字符返回 '?'。是否有一个函数可用于获取布尔指示验证?

任何想法表示赞赏。谢谢。

【问题讨论】:

  • ASCII 是指只有低 7 位?
  • 我不认为 ASCII 有任何多字节的字符。检查?真的没有帮助吗?也可以是有效的 ASCII ?.
  • Ascii 没有任何多字节字符,但我如何知道一个字节是独立的还是来自另一个字符集的多字节字符的一部分?
  • 你没有。除非您知道编码,否则您无法解码。
  • 我不想解码。我只是想确定字节集合是否代表有效的 ASCII 字符串?也许不可能?

标签: .net character-encoding ascii


【解决方案1】:

如果 ASCII 表示字符 0 – 127,则可以非常简单地验证它:

if (bytes.All(b => b < 128))

如果您指的是众多 8 位编码中的一种,则没有无效的字节序列。

【讨论】:

    猜你喜欢
    • 2014-10-27
    • 2022-01-20
    • 1970-01-01
    • 2011-02-21
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    相关资源
    最近更新 更多