代码之家  ›  专栏  ›  技术社区  ›  Alexandru

在C#中,如何检测字符是否为非ASCII字符?

  •  42
  • Alexandru  · 技术社区  · 11 年前

    我想在C#中检查一个字符是否包含非ASCII字符。检查特殊字符的最佳方法是什么 志 Ω ?

    3 回复  |  直到 11 年前
        1
  •  49
  •   musefan    11 年前

    ASCII的范围从0到127,所以只需检查该范围:

    char c = 'a';//or whatever char you have
    bool isAscii = c < 128;
    
        2
  •  45
  •   Wai Ha Lee captain-yossarian from Ukraine    3 年前
    bool HasNonASCIIChars(string str)
    {
        return (System.Text.Encoding.UTF8.GetByteCount(str) != str.Length);
    }
    
        3
  •  4
  •   Crown    2 年前

    以防万一有人碰到这个。在dotNET6中有一个 new method 检查字符是否为ASCII字符

    public static bool IsAscii (char c);
    

    为了解决这个问题,你可以写

    var containsOnlyAscii = str.All(char.IsAscii);
    

    使用 LINQ All 方法


    通常,您可以使用此新方法来检查单个字符

    var isAscii = char.IsAscii(c);